From c2df57a512dd68515552ec8c59eb163e32d620ca Mon Sep 17 00:00:00 2001 From: Deepak Mishra <108808209+deepakmishra2@users.noreply.github.com> Date: Tue, 30 Jun 2026 10:48:03 +0530 Subject: [PATCH 01/11] CLI-1793: Consume Cloud API v3 OpenAPI spec in ACLI (#2011) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Bump the dependencies group with 2 updates (#2010) Bumps the dependencies group with 2 updates: [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) and [ramsey/uuid](https://github.com/ramsey/uuid). Updates `guzzlehttp/guzzle` from 7.11.1 to 7.12.1 - [Release notes](https://github.com/guzzle/guzzle/releases) - [Changelog](https://github.com/guzzle/guzzle/blob/7.12/CHANGELOG.md) - [Commits](https://github.com/guzzle/guzzle/compare/7.11.1...7.12.1) Updates `ramsey/uuid` from 4.9.2 to 4.9.3 - [Release notes](https://github.com/ramsey/uuid/releases) - [Changelog](https://github.com/ramsey/uuid/blob/4.x/CHANGELOG.md) - [Commits](https://github.com/ramsey/uuid/compare/4.9.2...4.9.3) --- updated-dependencies: - dependency-name: guzzlehttp/guzzle dependency-version: 7.12.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dependencies - dependency-name: ramsey/uuid dependency-version: 4.9.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * CLI-1793: Spike — POC to consume Cloud API v3 OpenAPI spec in ACLI Adds a parallel command-generation path for v3 specs sourced from `acquia/api-specs`, without touching the existing v2 or ACSF pipelines. - composer.json: new `update-acquia-v3-spec` script that bundles site-service-php + environment-service-php via redocly, then translates legacy `x-cli-name` to ARB-550's `x-acquia-exposure.channels.cli.command` at the consumption boundary. - src/Command/Api/ApiCommandHelper.php: extracted `getCliCommandName()` and `normalizePath()` as protected template methods. v2 behavior unchanged (defaults return legacy key / input path). - src/Command/Api/ApiV3CommandHelper.php: subclass with strict ARB-550 key lookup (no legacy fallback) and `/v3/` path prefixing for env-service endpoints (site-service endpoints are not prefixed on the live gateway and are left untouched). - bin/acli: register `api:v3:*` commands under a `file_exists` guard, reusing the existing `ApiCommandFactory`. - assets/acquia-v3-spec.json: first v3 bundle (20 operations across site-service-php + environment-service-php). - docs/poc/acquia-v3-spec-ingestion.md: findings doc with go/no-go recommendation, upstream dependency tracking (API-1678 KaaS server, API-1674 CLI directive, acquia/api-specs PR #46 bundling fixes), and a cleanup plan for each jq transform once upstream catches up. Tests: 32 pass / 159 assertions. 4 ARB-550 key cases, 4 path normalization cases, 6 spec-file sanity checks, 5 real-bundle E2E tests, plus v2 regression coverage via ApiCommandHelperTest and ApiListCommandTest. Live-verified end-to-end: - `api:v3:environments:find ` returns 200 OK with real MEO env data from the production Cloud Platform gateway. - `api:v3:sites:duplicate` accepted (202) and created a real duplicated site. - No regressions on `api:*` (378 v2 commands) or `acsf:*` (128 commands). Co-Authored-By: Claude Opus 4.7 (1M context) * fix mutation testing. * fix test and v3 changes. * fix site instance issue. * Fix gateway url and logic update. * mutation test added * fix cves. * fix test. * fix test * feedback changes. * update spec. * add more test. * add stability flag * mutation testing fix. * mutation test fix. * logic for audience added. * mutation fix again * update make redocly call * CLI-1796: Productionize the v3 commands for CLI. (#2013) * CLI-1796: Productionize the v3 commands for CLI. * fix CI. * remove CI logic. * ran composer command to update spec. * update git ssh url. --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 4.7 (1M context) --- assets/acquia-v3-spec.json | 153274 +++++++++++++++ assets/acquia-v3-spec.version | 1 + bin/acli | 7 +- composer.json | 9 + config/prod/services.yml | 20 + src/CloudApi/CloudCredentials.php | 15 + src/CloudApi/V3ClientService.php | 21 + src/Command/Api/ApiBaseCommand.php | 22 + src/Command/Api/ApiCommandHelper.php | 50 +- src/Command/Api/ApiListCommandBase.php | 3 +- src/Command/Api/ApiV3CommandFactory.php | 51 + src/Command/Api/ApiV3CommandHelper.php | 45 + src/Command/Ide/IdeCreateCommand.php | 7 +- src/Command/Self/ListCommand.php | 3 +- .../src/CloudApi/ClientServiceTest.php | 14 + .../src/CloudApi/EnvVarAuthenticationTest.php | 9 + .../src/Commands/Api/ApiCommandHelperTest.php | 52 + .../src/Commands/Api/ApiCommandTest.php | 102 + .../src/Commands/Api/ApiListCommandTest.php | 35 + .../Commands/Api/ApiV3CommandHelperTest.php | 497 + tests/phpunit/src/Misc/ApiV3SpecTest.php | 112 + 21 files changed, 154341 insertions(+), 8 deletions(-) create mode 100644 assets/acquia-v3-spec.json create mode 100644 assets/acquia-v3-spec.version create mode 100644 src/CloudApi/V3ClientService.php create mode 100644 src/Command/Api/ApiV3CommandFactory.php create mode 100644 src/Command/Api/ApiV3CommandHelper.php create mode 100644 tests/phpunit/src/Commands/Api/ApiV3CommandHelperTest.php create mode 100644 tests/phpunit/src/Misc/ApiV3SpecTest.php diff --git a/assets/acquia-v3-spec.json b/assets/acquia-v3-spec.json new file mode 100644 index 00000000..db5253ad --- /dev/null +++ b/assets/acquia-v3-spec.json @@ -0,0 +1,153274 @@ +{ + "openapi": "3.1.1", + "info": { + "title": "Failover Service API", + "version": "1.0.0", + "description": "Documentation for failover service API endpoints.", + "license": { + "name": "Acquia Terms of Service", + "url": "https://www.acquia.com/acquia/agreement" + }, + "contact": { + "email": "ngc-web@acquia.com" + } + }, + "tags": [ + { + "name": "Failover_Service_API_Failover Groups", + "description": "Failover Groups", + "x-displayName": "Failover Groups" + }, + { + "name": "Failover_Service_API_Environments", + "description": "Environments", + "x-displayName": "Environments" + }, + { + "name": "Codebase_Service_API_Codebases", + "description": "Codebases", + "x-displayName": "Codebases" + }, + { + "name": "Codebase_Service_API_Codebase References", + "description": "Codebase References", + "x-displayName": "Codebase References" + }, + { + "name": "Codebase_Service_API_Domain Patterns", + "description": "Endpoints related to automated domain pattern management", + "x-displayName": "Domain Patterns" + }, + { + "name": "Tag_API_Tags", + "description": "Tags", + "x-displayName": "Tags" + }, + { + "name": "Site_Service_API_Sites", + "description": "Sites", + "x-displayName": "Sites" + }, + { + "name": "CDN_API_CDNs", + "description": "CDN domain management operations", + "x-displayName": "CDNs" + }, + { + "name": "Environment_Service_API_Environments", + "description": "Endpoints related to Environment resources", + "x-displayName": "Environments" + }, + { + "name": "Environment_Service_API_Site Instances", + "description": "Endpoints related to Site Instance resources", + "x-displayName": "Site Instances" + }, + { + "name": "Environment_Service_API_Deployments", + "description": "Deployments", + "x-displayName": "Deployments" + }, + { + "name": "Environment_Service_API_Code Deploys", + "description": "Code Deploys", + "x-displayName": "Code Deploys" + }, + { + "name": "Environment_Service_API_Domains", + "description": "Endpoints related to Domain resources on site instances", + "x-displayName": "Domains" + }, + { + "name": "Environment_Service_API_Site Instance Databases", + "description": "Endpoints related to database, connection, and backup resources on site instances", + "x-displayName": "Site Instance Databases" + }, + { + "name": "Environment_Service_API_Domain Patterns", + "description": "Endpoints related to automated domain pattern management", + "x-displayName": "Domain Patterns" + }, + { + "name": "Federated_Authentication_API_Domains", + "description": "Endpoints for managing domains for Federated SSO.", + "x-displayName": "Domains" + }, + { + "name": "Federated_Authentication_API_Identity Providers", + "description": "Endpoints for managing Identity Providers for Federated SSO.", + "x-displayName": "Identity Providers" + }, + { + "name": "SSH_Key_Service_API_SSH Keys", + "description": "Manage SSH keys for user accounts.", + "x-displayName": "SSH Keys" + } + ], + "paths": { + "/failover-groups": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves a collection of failover groups.", + "operationId": "getFailoverGroups", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "failover-groups:list" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "failover-service" + } + }, + "tags": [ + "Failover_Service_API_Failover Groups" + ], + "description": "Retrieves a collection of failover groups. Use the `filter` parameter to scope results by source environment.\n\nFilter syntax:\n- By source environment: `filter=environment_id:`\n", + "parameters": [ + { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + }, + { + "name": "filter", + "in": "query", + "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" + }, + "example": "status=active;type=standard" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the failover group.", + "example": "b2c3d4e5-f6a7-8901-bcde-f12345678901" + }, + "name": { + "type": "string", + "description": "The name of the failover group.", + "example": "Primary Failover Group" + }, + "status": { + "type": "string", + "enum": [ + "creating", + "normal", + "failed-over", + "failing-over", + "error", + "deleting", + "deleted" + ], + "description": "The current status of the failover group.", + "example": "normal" + }, + "pairs": { + "type": "array", + "description": "The list of failover pairs belonging to this failover group.", + "items": { + "type": "object", + "properties": { + "service_name": { + "type": "string", + "description": "The name of the service for this failover pair.", + "example": "my-application-service" + }, + "primary_id": { + "type": "string", + "description": "The ID of the primary resource in the failover pair.", + "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + }, + "failover_id": { + "type": "string", + "description": "The UUID of the failover resource in the failover pair.", + "example": "f1e2d3c4-b5a6-7890-fedc-ba9876543210" + } + }, + "required": [ + "service_name", + "primary_id", + "failover_id" + ] + } + } + }, + "required": [ + "id", + "name", + "status", + "pairs" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "examples": { + "failover_group_collection": { + "summary": "Failover group collection with pagination", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/failover-groups?limit=2&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/failover-groups?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/failover-groups?limit=2{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/failover-groups?limit=2&offset=0{&filter}", + "templated": true + } + }, + "count": 1, + "total": 1, + "pagination": { + "total": 1, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", + "name": "Primary Failover Group", + "status": "normal", + "pairs": [ + { + "service_name": "my-application-service", + "primary_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "failover_id": "f1e2d3c4-b5a6-7890-fedc-ba9876543210" + } + ], + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901" + } + } + } + ] + } + } + } + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Failover_Service_API_BearerAuth": [] + } + ] + }, + "post": { + "summary": "Creates a new failover group.", + "operationId": "createFailoverGroup", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "failover-groups:create" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "failover-service" + } + }, + "tags": [ + "Failover_Service_API_Failover Groups" + ], + "requestBody": { + "description": "Create failover group request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the failover group.", + "example": "Primary Failover Group" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + "examples": { + "create": { + "summary": "Creates a new failover group", + "description": "Creates a new failover group with the specified name", + "value": { + "name": "Primary Failover Group" + } + } + } + } + } + }, + "responses": { + "202": { + "description": "Failover group creation initiated", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Failover group creation has been initiated.", + "description": "Confirmation message that the failover group creation has been initiated." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901" + } + }, + "message": "Failover group creation has been initiated." + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Failover_Service_API_BearerAuth": [] + } + ] + } + }, + "/failover-groups/{failoverGroupId}": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves a failover group by ID.", + "operationId": "findFailoverGroupByFailoverGroupId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "failover-groups:find" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "failover-service" + } + }, + "tags": [ + "Failover_Service_API_Failover Groups" + ], + "parameters": [ + { + "name": "failoverGroupId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the failover group." + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the failover group.", + "example": "b2c3d4e5-f6a7-8901-bcde-f12345678901" + }, + "name": { + "type": "string", + "description": "The name of the failover group.", + "example": "Primary Failover Group" + }, + "status": { + "type": "string", + "enum": [ + "creating", + "normal", + "failed-over", + "failing-over", + "error", + "deleting", + "deleted" + ], + "description": "The current status of the failover group.", + "example": "normal" + }, + "pairs": { + "type": "array", + "description": "The list of failover pairs belonging to this failover group.", + "items": { + "type": "object", + "properties": { + "service_name": { + "type": "string", + "description": "The name of the service for this failover pair.", + "example": "my-application-service" + }, + "primary_id": { + "type": "string", + "description": "The ID of the primary resource in the failover pair.", + "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + }, + "failover_id": { + "type": "string", + "description": "The UUID of the failover resource in the failover pair.", + "example": "f1e2d3c4-b5a6-7890-fedc-ba9876543210" + } + }, + "required": [ + "service_name", + "primary_id", + "failover_id" + ] + } + } + }, + "required": [ + "id", + "name", + "status", + "pairs" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", + "name": "Primary Failover Group", + "status": "normal", + "pairs": [ + { + "service_name": "my-application-service", + "primary_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "failover_id": "f1e2d3c4-b5a6-7890-fedc-ba9876543210" + } + ], + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findFailoverGroupByFailoverGroupId", + "parameters": { + "failoverGroupId": "$request.path.failoverGroupId" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Failover_Service_API_BearerAuth": [] + } + ] + }, + "delete": { + "summary": "Deletes a failover group by ID.", + "operationId": "deleteFailoverGroupByFailoverGroupId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "failover-groups:delete" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "failover-service" + } + }, + "tags": [ + "Failover_Service_API_Failover Groups" + ], + "parameters": [ + { + "name": "failoverGroupId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the failover group." + } + ], + "responses": { + "202": { + "description": "Failover group deletion initiated", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Failover group deletion has been initiated.", + "description": "Confirmation message that the failover group deletion has been initiated." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901" + } + }, + "message": "Failover group deletion has been initiated." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Failover_Service_API_BearerAuth": [] + } + ] + } + }, + "/failover-groups/{failoverGroupId}/actions/failover": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "post": { + "summary": "Initiates failover for a failover group.", + "operationId": "failoverFailoverGroupByFailoverGroupId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "failover-groups:failover" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "failover-service" + } + }, + "tags": [ + "Failover_Service_API_Failover Groups" + ], + "parameters": [ + { + "name": "failoverGroupId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the failover group." + } + ], + "responses": { + "202": { + "description": "Failover group failover initiated", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Failover group failover initiated.", + "description": "Confirmation message that the failover group failover has been initiated." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901" + } + }, + "message": "Failover group failover initiated." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Failover_Service_API_BearerAuth": [] + } + ] + } + }, + "/failover-groups/{failoverGroupId}/actions/revert-failover": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "post": { + "summary": "Initiates a revert failover for a failover group.", + "operationId": "revertFailoverFailoverGroupByFailoverGroupId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "failover-groups:revert-failover" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "failover-service" + } + }, + "tags": [ + "Failover_Service_API_Failover Groups" + ], + "parameters": [ + { + "name": "failoverGroupId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the failover group." + } + ], + "responses": { + "202": { + "description": "Failover group revert failover initiated", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Failover group revert failover initiated.", + "description": "Confirmation message that the failover group revert failover has been initiated." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901" + } + }, + "message": "Failover group revert failover initiated." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Failover_Service_API_BearerAuth": [] + } + ] + } + }, + "/failover-groups/{failoverGroupId}/actions/sync": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "post": { + "summary": "Initiates a sync for a failover group.", + "operationId": "syncFailoverGroupByFailoverGroupId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "failover-groups:sync" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "failover-service" + } + }, + "tags": [ + "Failover_Service_API_Failover Groups" + ], + "parameters": [ + { + "name": "failoverGroupId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the failover group." + } + ], + "responses": { + "202": { + "description": "Failover group sync initiated", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Failover group sync initiated.", + "description": "Confirmation message that the failover group sync has been initiated." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901" + } + }, + "message": "Failover group sync initiated." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Failover_Service_API_BearerAuth": [] + } + ] + } + }, + "/environments/{environmentId}/multi-region-failover": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves the multi-region failover status for an environment.", + "operationId": "findMultiRegionFailoverByEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "environments:find-multi-region-failover" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "failover-service" + } + }, + "tags": [ + "Failover_Service_API_Environments" + ], + "parameters": [ + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "is_enabled": { + "type": "boolean", + "description": "Whether multi-region failover is enabled for the environment." + }, + "failover_group_id": { + "type": "string", + "description": "The identifier of the failover group associated with the environment." + }, + "is_traffic_failed_over": { + "type": "boolean", + "description": "Whether traffic has been failed over to the secondary region." + } + }, + "required": [ + "is_enabled" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "is_enabled": true, + "failover_group_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", + "is_traffic_failed_over": false, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/a1b2c3d4-e5f6-7890-abcd-ef1234567890/multi-region-failover" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findMultiRegionFailoverByEnvironmentId", + "parameters": { + "environmentId": "$request.path.environmentId" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Failover_Service_API_BearerAuth": [] + } + ] + }, + "put": { + "summary": "Enables multi-region failover for an environment.", + "operationId": "saveMultiRegionFailoverByEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "environments:update-multi-region-failover" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "failover-service" + } + }, + "tags": [ + "Failover_Service_API_Environments" + ], + "parameters": [ + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "requestBody": { + "description": "Multi-region failover enable request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "region": { + "type": "string", + "description": "The region to enable multi-region failover for.", + "example": "us-east-1" + } + }, + "required": [ + "region" + ], + "additionalProperties": false, + "minProperties": 1 + }, + "examples": { + "enable": { + "summary": "Enables multi-region failover for a region", + "description": "Enables multi-region failover for the specified region", + "value": { + "region": "us-east-1" + } + } + } + } + } + }, + "responses": { + "202": { + "description": "Multi-region failover enable initiated", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Multi-region failover enable has been initiated.", + "description": "Confirmation message that multi-region failover enable has been initiated." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/a1b2c3d4-e5f6-7890-abcd-ef1234567890/multi-region-failover" + } + }, + "message": "Multi-region failover enable has been initiated." + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Failover_Service_API_BearerAuth": [] + } + ] + }, + "delete": { + "summary": "Disables multi-region failover for an environment.", + "operationId": "deleteMultiRegionFailoverByEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "environments:delete-multi-region-failover" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "failover-service" + } + }, + "tags": [ + "Failover_Service_API_Environments" + ], + "parameters": [ + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "responses": { + "202": { + "description": "Multi-region failover disable initiated", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Multi-region failover disable has been initiated.", + "description": "Confirmation message that multi-region failover disable has been initiated." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/a1b2c3d4-e5f6-7890-abcd-ef1234567890/multi-region-failover" + } + }, + "message": "Multi-region failover disable has been initiated." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Failover_Service_API_BearerAuth": [] + } + ] + } + }, + "/codebases": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves a list of codebases accessible by the user.", + "description": "Retrieves a paginated collection of codebases. Use the `filter` parameter to scope results by association.\n\nFilter syntax:\n- By application: `filter=application_id%3D` (e.g. `filter=application_id%3Dabc-123`)\n", + "operationId": "getCodebases", + "x-acquia-exposure": { + "stability": "production", + "audience": [ + "public" + ], + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "codebases:list" + }, + "mcp": { + "enabled": false + }, + "ops": { + "enabled": false + } + } + }, + "x-acquia-operation": { + "provider": { + "service": "codebase-service" + } + }, + "tags": [ + "Codebase_Service_API_Codebases" + ], + "parameters": [ + { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + }, + { + "name": "filter", + "in": "query", + "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" + }, + "example": "status=active;type=standard" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the codebase" + }, + "label": { + "type": "string", + "description": "Human-readable label for the codebase" + }, + "region": { + "type": "string", + "description": "AWS region of the codebase" + }, + "vcs_url": { + "type": "string", + "format": "uri", + "description": "VCS repository URL" + }, + "repository_id": { + "type": "string", + "description": "VCS repository identifier" + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Creation timestamp" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "Last update timestamp" + }, + "description": { + "type": "string", + "description": "Description of the codebase" + }, + "flags": { + "type": "object", + "properties": { + "is_active": { + "type": "boolean", + "description": "Whether the codebase is active" + }, + "is_meo": { + "type": "boolean", + "description": "Whether the codebase is MEO" + } + }, + "required": [ + "is_active", + "is_meo" + ], + "description": "Feature flags for the codebase" + }, + "hash": { + "type": "string", + "description": "Codebase hash" + }, + "applications_total": { + "type": "integer", + "description": "Total number of applications linked to this codebase" + } + }, + "required": [ + "id", + "label", + "region", + "vcs_url", + "repository_id", + "created_at", + "updated_at", + "flags", + "hash", + "applications_total" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "examples": { + "codebase_collection": { + "summary": "Codebase collection with pagination", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases?limit=10&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/codebases?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/codebases?limit=10{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/codebases?limit=10&offset=0{&filter}", + "templated": true + } + }, + "count": 1, + "total": 1, + "pagination": { + "total": 1, + "limit": 10, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", + "label": "my-codebase", + "region": "us-east-1", + "vcs_url": "https://github.com/acquia/my-codebase.git", + "repository_id": "12345678", + "created_at": "2024-01-15T10:30:00Z", + "updated_at": "2024-01-15T10:30:00Z", + "description": "Main production codebase", + "flags": { + "is_active": true, + "is_meo": false + }, + "hash": "abc123def456", + "applications_total": 3, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4" + } + } + } + ] + } + } + } + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Codebase_Service_API_BearerAuth": [] + } + ] + } + }, + "/codebases/{codebaseId}": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves a codebase by its ID.", + "operationId": "findCodebaseByCodebaseId", + "x-acquia-exposure": { + "stability": "production", + "audience": [ + "public" + ], + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "codebases:find" + }, + "mcp": { + "enabled": false + }, + "ops": { + "enabled": false + } + } + }, + "x-acquia-operation": { + "provider": { + "service": "codebase-service" + } + }, + "tags": [ + "Codebase_Service_API_Codebases" + ], + "parameters": [ + { + "name": "codebaseId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the codebase." + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the codebase" + }, + "label": { + "type": "string", + "description": "Human-readable label for the codebase" + }, + "region": { + "type": "string", + "description": "AWS region of the codebase" + }, + "vcs_url": { + "type": "string", + "format": "uri", + "description": "VCS repository URL" + }, + "repository_id": { + "type": "string", + "description": "VCS repository identifier" + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Creation timestamp" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "Last update timestamp" + }, + "description": { + "type": "string", + "description": "Description of the codebase" + }, + "flags": { + "type": "object", + "properties": { + "is_active": { + "type": "boolean", + "description": "Whether the codebase is active" + }, + "is_meo": { + "type": "boolean", + "description": "Whether the codebase is MEO" + } + }, + "required": [ + "is_active", + "is_meo" + ], + "description": "Feature flags for the codebase" + }, + "hash": { + "type": "string", + "description": "Codebase hash" + }, + "applications_total": { + "type": "integer", + "description": "Total number of applications linked to this codebase" + } + }, + "required": [ + "id", + "label", + "region", + "vcs_url", + "repository_id", + "created_at", + "updated_at", + "flags", + "hash", + "applications_total" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", + "label": "my-codebase", + "region": "us-east-1", + "vcs_url": "https://github.com/acquia/my-codebase.git", + "repository_id": "12345678", + "created_at": "2024-01-15T10:30:00Z", + "updated_at": "2024-01-15T10:30:00Z", + "description": "Main production codebase", + "flags": { + "is_active": true, + "is_meo": false + }, + "hash": "abc123def456", + "applications_total": 3, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Codebase_Service_API_BearerAuth": [] + } + ] + }, + "put": { + "summary": "Updates a codebase by its ID.", + "operationId": "updateCodebaseByCodebaseId", + "x-acquia-exposure": { + "stability": "production", + "audience": [ + "public" + ], + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "codebases:update" + }, + "mcp": { + "enabled": false + }, + "ops": { + "enabled": false + } + } + }, + "x-acquia-operation": { + "provider": { + "service": "codebase-service" + } + }, + "tags": [ + "Codebase_Service_API_Codebases" + ], + "parameters": [ + { + "name": "codebaseId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the codebase." + } + ], + "requestBody": { + "description": "Codebase update request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "Human-readable label for the codebase" + }, + "description": { + "type": "string", + "description": "Description of the codebase" + } + }, + "minProperties": 1, + "additionalProperties": false + }, + "examples": { + "update": { + "summary": "Update a codebase", + "description": "Updates an existing codebase's label and description", + "value": { + "label": "updated-codebase-label", + "description": "Updated codebase description" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Codebase updated", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Codebase updated.", + "description": "Confirmation message" + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4" + } + }, + "message": "Codebase updated." + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Codebase_Service_API_BearerAuth": [] + } + ] + }, + "delete": { + "summary": "Deletes a codebase by its ID.", + "operationId": "deleteCodebaseByCodebaseId", + "x-acquia-exposure": { + "stability": "production", + "audience": [ + "public" + ], + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "codebases:delete" + }, + "mcp": { + "enabled": false + }, + "ops": { + "enabled": false + } + } + }, + "x-acquia-operation": { + "provider": { + "service": "codebase-service" + } + }, + "tags": [ + "Codebase_Service_API_Codebases" + ], + "parameters": [ + { + "name": "codebaseId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the codebase." + } + ], + "responses": { + "200": { + "description": "Codebase deleted", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Codebase deleted.", + "description": "Confirmation message" + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4" + } + }, + "message": "Codebase deleted." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Codebase_Service_API_BearerAuth": [] + } + ] + } + }, + "/codebases/{codebaseId}/references": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves a list of git references for a codebase.", + "operationId": "getReferencesByCodebaseId", + "x-acquia-exposure": { + "stability": "production", + "audience": [ + "public" + ], + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "codebases:list-references" + }, + "mcp": { + "enabled": false + }, + "ops": { + "enabled": false + } + } + }, + "x-acquia-operation": { + "provider": { + "service": "codebase-service" + } + }, + "tags": [ + "Codebase_Service_API_Codebase References" + ], + "parameters": [ + { + "name": "codebaseId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the codebase." + }, + { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + } + ], + "responses": { + "200": { + "description": "A list of git references for the codebase", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the reference" + }, + "name": { + "type": "string", + "description": "Name of the git reference" + }, + "type": { + "type": "string", + "enum": [ + "branch", + "tag" + ], + "description": "Type of the git reference" + } + }, + "required": [ + "id", + "name", + "type" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references?limit=10&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references?limit=10{&offset}", + "templated": true + } + }, + "count": 2, + "total": 2, + "pagination": { + "total": 2, + "limit": 10, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "ref-123", + "name": "main", + "type": "branch", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references/main" + } + } + }, + { + "id": "ref-456", + "name": "v1.0.0", + "type": "tag", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references/v1.0.0" + } + } + } + ] + } + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Codebase_Service_API_BearerAuth": [] + } + ] + } + }, + "/codebases/{codebaseId}/references/{referenceName}": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves a single git reference for a codebase.", + "operationId": "findReferenceByCodebaseIdAndReferenceName", + "x-acquia-exposure": { + "stability": "production", + "audience": [ + "public" + ], + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "codebases:find-reference" + }, + "mcp": { + "enabled": false + }, + "ops": { + "enabled": false + } + } + }, + "x-acquia-operation": { + "provider": { + "service": "codebase-service" + } + }, + "tags": [ + "Codebase_Service_API_Codebase References" + ], + "parameters": [ + { + "name": "codebaseId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the codebase." + }, + { + "name": "referenceName", + "in": "path", + "required": true, + "description": "Name of the git reference (branch or tag). Slashes must be URL-encoded as `%2F` in the path (e.g., `feature%2Fbranch-name`).", + "schema": { + "type": "string", + "pattern": "^[^/]+$" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the reference" + }, + "name": { + "type": "string", + "description": "Name of the git reference" + }, + "type": { + "type": "string", + "enum": [ + "branch", + "tag" + ], + "description": "Type of the git reference" + } + }, + "required": [ + "id", + "name", + "type" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "id": "ref-123", + "name": "main", + "type": "branch", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references/main" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Codebase_Service_API_BearerAuth": [] + } + ] + } + }, + "/codebases/{codebaseId}/domain-patterns": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves a collection of domain patterns for the specified codebase.", + "operationId": "getDomainPatternsByCodebaseId", + "tags": [ + "Codebase_Service_API_Domain Patterns" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "codebases:list-domain-patterns" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "codebase-service" + } + }, + "parameters": [ + { + "name": "codebaseId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the codebase." + }, + { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + }, + { + "name": "sort", + "in": "query", + "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" + }, + "example": "name,-created_at" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Unique identifier for the domain pattern." + }, + "pattern": { + "type": "string", + "maxLength": 455, + "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", + "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].[environment-name].acme.com/app). Both [site-name] and [environment-name] tokens are mandatory at codebase level. Domain rules (enforced in service layer): ≤ 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] ≤ 14 chars, [environment-name] ≤ 10 chars). One pattern per codebase.\n", + "example": "[site-name].[environment-name].acme.com" + } + }, + "required": [ + "id", + "pattern" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "examples": { + "domain_pattern_collection": { + "summary": "Domain pattern collection", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns" + }, + "limit": { + "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25{&offset}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25&offset=0{&sort}", + "templated": true + } + }, + "count": 1, + "total": 1, + "pagination": { + "total": 1, + "limit": 25, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "22222222-2222-2222-2222-222222222222", + "pattern": "[site-name].[environment-name].acme.com", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222" + } + } + } + ] + } + } + }, + "domain_pattern_collection_empty": { + "summary": "Empty domain pattern collection", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns" + }, + "limit": { + "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25{&offset}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25&offset=0{&sort}", + "templated": true + } + }, + "count": 0, + "total": 0, + "pagination": { + "total": 0, + "limit": 25, + "offset": 0 + }, + "_embedded": { + "items": [] + } + } + } + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Codebase_Service_API_BearerAuth": [] + } + ] + }, + "post": { + "summary": "Creates a domain pattern for the specified codebase.", + "operationId": "createDomainPatternByCodebaseId", + "tags": [ + "Codebase_Service_API_Domain Patterns" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "codebases:create-domain-pattern" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "codebase-service" + } + }, + "parameters": [ + { + "name": "codebaseId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the codebase." + } + ], + "requestBody": { + "description": "Create domain pattern request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "pattern": { + "type": "string", + "maxLength": 455, + "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", + "description": "The domain pattern to apply to all associated sites in this codebase, optionally followed by a single path segment. Both [site-name] and [environment-name] tokens are mandatory. Domain ≤ 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per codebase) are enforced at the service layer.\n" + } + }, + "required": [ + "pattern" + ], + "additionalProperties": false + }, + "examples": { + "create_domain_pattern": { + "summary": "Create a domain pattern", + "value": { + "pattern": "[site-name].[environment-name].acme.com" + } + } + } + } + } + }, + "responses": { + "202": { + "description": "Domain pattern creation initiated.", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "The domain pattern is being applied to all associated sites in this codebase.", + "description": "Confirmation message that the domain pattern is being applied." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222" + } + }, + "message": "The domain pattern is being applied to all associated sites in this codebase." + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Codebase_Service_API_BearerAuth": [] + } + ] + } + }, + "/codebases/{codebaseId}/domain-patterns/{patternId}": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves a domain pattern by codebase ID and pattern ID.", + "operationId": "findDomainPatternByCodebaseIdAndPatternId", + "tags": [ + "Codebase_Service_API_Domain Patterns" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "codebases:find-domain-pattern" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "codebase-service" + } + }, + "parameters": [ + { + "name": "codebaseId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the codebase." + }, + { + "name": "patternId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the domain pattern." + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Unique identifier for the domain pattern." + }, + "pattern": { + "type": "string", + "maxLength": 455, + "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", + "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].[environment-name].acme.com/app). Both [site-name] and [environment-name] tokens are mandatory at codebase level. Domain rules (enforced in service layer): ≤ 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] ≤ 14 chars, [environment-name] ≤ 10 chars). One pattern per codebase.\n", + "example": "[site-name].[environment-name].acme.com" + } + }, + "required": [ + "id", + "pattern" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "id": "22222222-2222-2222-2222-222222222222", + "pattern": "[site-name].[environment-name].acme.com", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findDomainPatternByCodebaseIdAndPatternId", + "parameters": { + "codebaseId": "$request.path.codebaseId", + "patternId": "$request.path.patternId" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Codebase_Service_API_BearerAuth": [] + } + ] + }, + "put": { + "summary": "Updates a domain pattern for the specified codebase.", + "operationId": "updateDomainPatternByCodebaseIdAndPatternId", + "tags": [ + "Codebase_Service_API_Domain Patterns" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "codebases:update-domain-pattern" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "codebase-service" + } + }, + "parameters": [ + { + "name": "codebaseId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the codebase." + }, + { + "name": "patternId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the domain pattern." + } + ], + "requestBody": { + "description": "Update domain pattern request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "pattern": { + "type": "string", + "maxLength": 455, + "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", + "description": "The updated domain pattern to apply to all associated sites in this codebase, optionally followed by a single path segment. Both [site-name] and [environment-name] tokens are mandatory. Domain ≤ 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per codebase) are enforced at the service layer.\n" + } + }, + "required": [ + "pattern" + ], + "additionalProperties": false, + "minProperties": 1 + }, + "examples": { + "update_domain_pattern": { + "summary": "Update a domain pattern", + "value": { + "pattern": "[site-name].[environment-name].acme.com" + } + } + } + } + } + }, + "responses": { + "202": { + "description": "Domain pattern update initiated.", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "The domain pattern update is being applied to all associated sites in this codebase.", + "description": "Confirmation message that the domain pattern update is being applied." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222" + } + }, + "message": "The domain pattern update is being applied to all associated sites in this codebase." + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Codebase_Service_API_BearerAuth": [] + } + ] + }, + "delete": { + "summary": "Deletes a domain pattern for the specified codebase. Engineering role only.", + "operationId": "deleteDomainPatternByCodebaseIdAndPatternId", + "tags": [ + "Codebase_Service_API_Domain Patterns" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "codebases:delete-domain-pattern" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "codebase-service" + } + }, + "parameters": [ + { + "name": "codebaseId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the codebase." + }, + { + "name": "patternId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the domain pattern." + } + ], + "responses": { + "202": { + "description": "Domain pattern deletion initiated. The 202 covers two async operations: (1) removal of the pattern record and (2) a bulk cleanup that disassociates any URLs already generated from this pattern on all associated site instances in the codebase. Both operations complete before the final settled state is observable.\n", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "The domain pattern is being removed from all associated sites in this codebase.", + "description": "Confirmation message that the domain pattern is being removed." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222" + } + }, + "message": "The domain pattern is being removed from all associated sites in this codebase." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Codebase_Service_API_BearerAuth": [] + } + ] + } + }, + "/subscriptions/{subscriptionId}/codebases": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves a list of codebases for a subscription.", + "operationId": "getCodebasesBySubscriptionId", + "x-acquia-exposure": { + "stability": "production", + "audience": [ + "public" + ], + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "subscriptions:list-codebases" + }, + "mcp": { + "enabled": false + }, + "ops": { + "enabled": false + } + } + }, + "x-acquia-operation": { + "provider": { + "service": "codebase-service" + } + }, + "tags": [ + "Codebase_Service_API_Codebases" + ], + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the subscription" + }, + { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + }, + { + "name": "filter", + "in": "query", + "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" + }, + "example": "status=active;type=standard" + } + ], + "responses": { + "200": { + "description": "A list of codebases for the subscription", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the codebase" + }, + "label": { + "type": "string", + "description": "Human-readable label for the codebase" + }, + "region": { + "type": "string", + "description": "AWS region of the codebase" + }, + "vcs_url": { + "type": "string", + "format": "uri", + "description": "VCS repository URL" + }, + "repository_id": { + "type": "string", + "description": "VCS repository identifier" + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Creation timestamp" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "Last update timestamp" + }, + "description": { + "type": "string", + "description": "Description of the codebase" + }, + "flags": { + "type": "object", + "properties": { + "is_active": { + "type": "boolean", + "description": "Whether the codebase is active" + }, + "is_meo": { + "type": "boolean", + "description": "Whether the codebase is MEO" + } + }, + "required": [ + "is_active", + "is_meo" + ], + "description": "Feature flags for the codebase" + }, + "hash": { + "type": "string", + "description": "Codebase hash" + }, + "applications_total": { + "type": "integer", + "description": "Total number of applications linked to this codebase" + } + }, + "required": [ + "id", + "label", + "region", + "vcs_url", + "repository_id", + "created_at", + "updated_at", + "flags", + "hash", + "applications_total" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "examples": { + "subscription_codebase_collection": { + "summary": "Subscription codebase collection with pagination", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-12345/codebases?limit=10&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-12345/codebases?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-12345/codebases?limit=10{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-12345/codebases?limit=10&offset=0{&filter}", + "templated": true + } + }, + "count": 1, + "total": 1, + "pagination": { + "total": 1, + "limit": 10, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", + "label": "my-codebase", + "region": "us-east-1", + "vcs_url": "https://github.com/acquia/my-codebase.git", + "repository_id": "12345678", + "created_at": "2024-01-15T10:30:00Z", + "updated_at": "2024-01-15T10:30:00Z", + "description": "Main production codebase", + "flags": { + "is_active": true, + "is_meo": false + }, + "hash": "abc123def456", + "applications_total": 3, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4" + } + } + } + ] + } + } + } + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Codebase_Service_API_BearerAuth": [] + } + ] + }, + "post": { + "summary": "Creates a new codebase for a subscription.", + "operationId": "createCodebase", + "x-acquia-exposure": { + "stability": "production", + "audience": [ + "public" + ], + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "subscriptions:create-codebase" + }, + "mcp": { + "enabled": false + }, + "ops": { + "enabled": false + } + } + }, + "x-acquia-operation": { + "provider": { + "service": "codebase-service" + } + }, + "tags": [ + "Codebase_Service_API_Codebases" + ], + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the subscription" + } + ], + "requestBody": { + "description": "Codebase creation request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "codebase_id": { + "type": "string", + "format": "uuid", + "description": "Client-supplied UUID for the new codebase" + }, + "label": { + "type": "string", + "description": "Human-readable label for the codebase" + }, + "region": { + "type": "string", + "description": "AWS region where the codebase will be created" + } + }, + "required": [ + "codebase_id", + "label", + "region" + ], + "additionalProperties": false + }, + "examples": { + "create": { + "summary": "Create a codebase", + "description": "Creates a new codebase for a subscription", + "value": { + "codebase_id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", + "label": "my-codebase", + "region": "us-east-1" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Codebase created", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Codebase created.", + "description": "Confirmation message" + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4" + } + }, + "message": "Codebase created." + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Codebase_Service_API_BearerAuth": [] + } + ] + } + }, + "/tags": { + "servers": [ + { + "url": "https://cloud.acquia.com/api-framework/demo-php/api" + } + ], + "get": { + "summary": "Retrieves a collection of tags.", + "operationId": "getTags", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "tags:list" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "tag-service" + } + }, + "tags": [ + "Tag_API_Tags" + ], + "parameters": [ + { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + }, + { + "name": "filter", + "in": "query", + "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" + }, + "example": "status=active;type=standard" + }, + { + "name": "sort", + "in": "query", + "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" + }, + "example": "name,-created_at" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "minLength": 1, + "maxLength": 255, + "description": "The name of the tag" + }, + "color": { + "type": "string", + "pattern": "^#((?:[a-f0-9]{3}){1,2})$", + "minLength": 4, + "maxLength": 7, + "description": "The color of the tag" + } + }, + "required": [ + "name", + "color" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "examples": { + "tag_response": { + "summary": "Tag collection with pagination", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags?limit=2&offset=2" + }, + "limit": { + "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags?offset=2{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags?limit=2{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags?limit=2&offset=2{&filter}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags?limit=2&offset=2{&sort}", + "templated": true + }, + "prev": { + "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags?limit=2&offset=0" + }, + "next": { + "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags?offset=4&limit=2" + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "name": "tag-1", + "color": "#ffffff", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags/tag-1" + } + } + }, + { + "name": "tag-2", + "color": "#000000", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags/tag-2" + } + } + } + ] + } + } + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Tag_API_BearerAuth": [] + } + ] + } + }, + "/tags/{tagName}": { + "servers": [ + { + "url": "https://cloud.acquia.com/api-framework/demo-php/api" + } + ], + "get": { + "summary": "Retrieves a tag by tag name.", + "operationId": "findTagByTagName", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "tags:find" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "tag-service" + } + }, + "tags": [ + "Tag_API_Tags" + ], + "parameters": [ + { + "name": "tagName", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the tag." + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "minLength": 1, + "maxLength": 255, + "description": "The name of the tag" + }, + "color": { + "type": "string", + "pattern": "^#((?:[a-f0-9]{3}){1,2})$", + "minLength": 4, + "maxLength": 7, + "description": "The color of the tag" + } + }, + "required": [ + "name", + "color" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "name": "tag-1", + "color": "#ffffff", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags/tag-1" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findTagByTagName", + "parameters": { + "tagName": "$request.path.tagName" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Tag_API_BearerAuth": [] + } + ] + }, + "put": { + "summary": "Creates a tag if tag does not exist else updates the tag by tag name.", + "operationId": "saveTagByTagName", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "tags:update" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "tag-service" + } + }, + "tags": [ + "Tag_API_Tags" + ], + "parameters": [ + { + "name": "tagName", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the tag." + } + ], + "requestBody": { + "description": "Tag create/update request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "color": { + "type": "string", + "pattern": "^#((?:[a-f0-9]{3}){1,2})$", + "description": "A color for the specified tag" + } + }, + "additionalProperties": false, + "minProperties": 1 + }, + "examples": { + "save": { + "summary": "Saves a tag", + "description": "Saves a tag with specified color", + "value": { + "color": "#000000" + } + } + } + } + } + }, + "responses": { + "202": { + "description": "Create/Updates a tag", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "The tag has been saved.", + "description": "Confirmation message that the tag is saved" + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags/tag-3" + } + }, + "message": "The tag has been saved." + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Tag_API_BearerAuth": [] + } + ] + }, + "delete": { + "summary": "Deletes a tag by tag name.", + "operationId": "deleteTagByTagName", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "tags:delete" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "tag-service" + } + }, + "tags": [ + "Tag_API_Tags" + ], + "parameters": [ + { + "name": "tagName", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the tag." + } + ], + "responses": { + "200": { + "description": "Deletes a tag", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "The tag has been deleted.", + "description": "Confirmation message that the tag is deleted" + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags/tag-1" + } + }, + "message": "The tag has been deleted." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Tag_API_BearerAuth": [] + } + ] + } + }, + "/sites": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves a list of sites accessible by the user.", + "operationId": "getSites", + "x-acquia-operation": { + "provider": { + "service": "site-service-php" + } + }, + "x-acquia-exposure": { + "stability": "production", + "audience": [ + "public" + ], + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "sites:list" + } + } + }, + "tags": [ + "Site_Service_API_Sites" + ], + "parameters": [ + { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + }, + { + "name": "filter", + "in": "query", + "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" + }, + "example": "status=active;type=standard" + }, + { + "name": "sort", + "in": "query", + "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" + }, + "example": "name,-created_at" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "description": "A Site resource", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the site", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "12345678-1234-1234-1234-123456789012" + }, + "name": { + "type": "string", + "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", + "minLength": 1, + "maxLength": 14, + "pattern": "^[a-z][a-z0-9]*$", + "example": "mysite" + }, + "label": { + "type": "string", + "description": "The human-readable label of the site", + "minLength": 1, + "maxLength": 50, + "example": "My Site 1" + }, + "description": { + "type": "string", + "description": "A description of the site", + "maxLength": 512, + "example": "A production site for the marketing team." + }, + "codebase_id": { + "type": "string", + "description": "The unique identifier of the codebase this site belongs to", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "550e8400-e29b-41d4-a716-446655441210" + }, + "status": { + "type": "string", + "description": "The current lifecycle status of the site. ready indicates the site is active and operational. marked-for-deletion indicates the site has been scheduled for deletion and can still be recovered.\n", + "enum": [ + "ready", + "marked-for-deletion" + ], + "example": "ready" + }, + "delete_at": { + "type": "string", + "format": "date-time", + "description": "ISO 8601 datetime indicating when the site is scheduled for deletion. Only present when status is marked-for-deletion.", + "example": "2025-06-15T00:00:00Z" + } + }, + "required": [ + "id", + "name", + "label", + "codebase_id", + "status" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "examples": { + "site_collection": { + "summary": "Site collection with pagination", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/sites?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/sites?limit=2{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0{&filter}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0{&sort}", + "templated": true + }, + "next": { + "href": "https://cloud.acquia.com/api/sites?limit=2&offset=2" + } + }, + "count": 2, + "total": 4, + "pagination": { + "total": 4, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", + "name": "mysite", + "label": "My Site", + "description": "A description of my site.", + "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", + "status": "ready", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890" + } + } + }, + { + "id": "e2b3c4d5-f6a7-8901-bcde-f12345678901", + "name": "anothersite", + "label": "Another Site", + "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", + "status": "marked-for-deletion", + "delete_at": "2025-01-01T00:00:00Z", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sites/e2b3c4d5-f6a7-8901-bcde-f12345678901" + } + } + } + ] + } + } + } + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Site_Service_API_BearerAuth": [] + } + ] + }, + "post": { + "summary": "Creates a site for a codebase.", + "operationId": "createSite", + "x-acquia-operation": { + "provider": { + "service": "site-service-php" + } + }, + "x-acquia-exposure": { + "stability": "production", + "audience": [ + "public" + ], + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "sites:create" + } + } + }, + "tags": [ + "Site_Service_API_Sites" + ], + "requestBody": { + "description": "Site creation request body", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", + "minLength": 1, + "maxLength": 14, + "pattern": "^[a-z][a-z0-9]*$", + "example": "mysite" + }, + "label": { + "type": "string", + "description": "The human-readable label for the site.", + "minLength": 1, + "maxLength": 50, + "example": "My Site" + }, + "codebase_id": { + "type": "string", + "description": "The unique identifier of the codebase to associate with this site.", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "a9b8c7d6-e5f4-3210-abcd-ef9876543210" + }, + "site_id": { + "type": "string", + "format": "uuid", + "description": "An optional explicit UUID for the new site. A UUID is generated automatically if omitted.", + "example": "0ebce493-9d09-479d-a9a8-138a206fa687" + }, + "description": { + "type": "string", + "description": "An optional description for the site.", + "maxLength": 512, + "example": "A production site for the marketing team." + } + }, + "required": [ + "name", + "label", + "codebase_id" + ], + "additionalProperties": false + }, + "examples": { + "create_site_full": { + "summary": "Create a new site with all fields", + "value": { + "name": "mysite", + "label": "My Site", + "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", + "site_id": "0ebce493-9d09-479d-a9a8-138a206fa687", + "description": "This is a description of my site." + } + }, + "create_site_minimal": { + "summary": "Create a new site with required fields only", + "value": { + "name": "newsitename", + "label": "New Site Label", + "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Site created", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Site creation started.", + "description": "Confirmation message indicating site creation has been initiated" + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890" + }, + "parent": { + "href": "https://cloud.acquia.com/api/sites" + } + }, + "message": "Site creation started." + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Site_Service_API_BearerAuth": [] + } + ] + } + }, + "/sites/{siteId}": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves a site by its ID.", + "operationId": "findSiteBySiteId", + "x-acquia-operation": { + "provider": { + "service": "site-service-php" + } + }, + "x-acquia-exposure": { + "stability": "production", + "audience": [ + "public" + ], + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "sites:find" + } + } + }, + "tags": [ + "Site_Service_API_Sites" + ], + "parameters": [ + { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "12345678-1234-1234-1234-123456789012" + }, + "description": "Unique identifier for the site" + } + ], + "responses": { + "200": { + "description": "Site details", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "description": "A Site resource", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the site", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "12345678-1234-1234-1234-123456789012" + }, + "name": { + "type": "string", + "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", + "minLength": 1, + "maxLength": 14, + "pattern": "^[a-z][a-z0-9]*$", + "example": "mysite" + }, + "label": { + "type": "string", + "description": "The human-readable label of the site", + "minLength": 1, + "maxLength": 50, + "example": "My Site 1" + }, + "description": { + "type": "string", + "description": "A description of the site", + "maxLength": 512, + "example": "A production site for the marketing team." + }, + "codebase_id": { + "type": "string", + "description": "The unique identifier of the codebase this site belongs to", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "550e8400-e29b-41d4-a716-446655441210" + }, + "status": { + "type": "string", + "description": "The current lifecycle status of the site. ready indicates the site is active and operational. marked-for-deletion indicates the site has been scheduled for deletion and can still be recovered.\n", + "enum": [ + "ready", + "marked-for-deletion" + ], + "example": "ready" + }, + "delete_at": { + "type": "string", + "format": "date-time", + "description": "ISO 8601 datetime indicating when the site is scheduled for deletion. Only present when status is marked-for-deletion.", + "example": "2025-06-15T00:00:00Z" + } + }, + "required": [ + "id", + "name", + "label", + "codebase_id", + "status" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "codebase": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890" + }, + "codebase": { + "href": "https://cloud.acquia.com/api/codebases/a9b8c7d6-e5f4-3210-abcd-ef9876543210" + } + }, + "id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", + "name": "mysite", + "label": "My Site", + "description": "This is a description of my site.", + "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", + "status": "ready" + } + } + }, + "links": { + "self": { + "operationId": "findSiteBySiteId", + "parameters": { + "siteId": "$request.path.siteId" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Site_Service_API_BearerAuth": [] + } + ] + }, + "put": { + "summary": "Updates a site by its ID.", + "operationId": "updateSiteBySiteId", + "x-acquia-operation": { + "provider": { + "service": "site-service-php" + } + }, + "x-acquia-exposure": { + "stability": "production", + "audience": [ + "public" + ], + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "sites:update" + } + } + }, + "tags": [ + "Site_Service_API_Sites" + ], + "parameters": [ + { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "12345678-1234-1234-1234-123456789012" + }, + "description": "Unique identifier for the site" + } + ], + "requestBody": { + "description": "Site update request body", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "The new human-readable label for the site.", + "minLength": 1, + "maxLength": 50, + "example": "My Updated Site" + }, + "description": { + "type": "string", + "description": "The new description for the site.", + "maxLength": 512, + "example": "Updated description for this site." + } + }, + "additionalProperties": false, + "minProperties": 1 + }, + "examples": { + "update_label": { + "summary": "Update site label", + "value": { + "label": "My Updated Site" + } + }, + "update_description": { + "summary": "Update site description", + "value": { + "description": "Updated description for this site." + } + }, + "update_both": { + "summary": "Update label and description", + "value": { + "label": "My Updated Site", + "description": "Updated description for this site." + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Site update accepted", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Site update started.", + "description": "Confirmation message indicating site update has been initiated" + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sites/12345678-1234-1234-1234-123456789012" + } + }, + "message": "Site update started." + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Site_Service_API_BearerAuth": [] + } + ] + }, + "delete": { + "summary": "Deletes a site by its ID.", + "operationId": "deleteSiteBySiteId", + "x-acquia-operation": { + "provider": { + "service": "site-service-php" + } + }, + "x-acquia-exposure": { + "stability": "production", + "audience": [ + "public" + ], + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "sites:delete" + } + } + }, + "tags": [ + "Site_Service_API_Sites" + ], + "parameters": [ + { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "12345678-1234-1234-1234-123456789012" + }, + "description": "Unique identifier for the site" + } + ], + "responses": { + "202": { + "description": "Site deletion accepted", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Site deleted.", + "description": "Confirmation message indicating the site has been deleted." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sites/550e8400-e29b-41d4-a716-446655440002" + } + }, + "message": "Site deleted." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Site_Service_API_BearerAuth": [] + } + ] + } + }, + "/sites/{siteId}/actions/duplicate": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "post": { + "summary": "Duplicates a site from another given site.", + "operationId": "duplicateSiteBySiteId", + "x-acquia-operation": { + "provider": { + "service": "site-service-php" + } + }, + "x-acquia-exposure": { + "stability": "production", + "audience": [ + "public" + ], + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "sites:duplicate" + } + } + }, + "tags": [ + "Site_Service_API_Sites" + ], + "parameters": [ + { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "12345678-1234-1234-1234-123456789012" + }, + "description": "Unique identifier for the site" + } + ], + "requestBody": { + "description": "Site duplication request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "environment_mapping": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-]+$", + "description": "Environment mapping in the format 'sourceEnvId:targetEnvId'" + }, + "description": "Array of environment mappings. You must provide exactly one environment mapping. Each entry maps a source environment ID to a target environment ID, separated by a colon.\n", + "minItems": 1, + "maxItems": 1, + "example": [ + "0ebce493-9d09-479d-a9a8-138a206fa687:a1b2c3d4-e5f6-7890-abcd-ef1234567890" + ] + }, + "site_name": { + "type": "string", + "description": "Machine name for the duplicated site. Must start with a lowercase letter and contain only lowercase letters and numbers. Maximum 14 characters.\n", + "minLength": 1, + "maxLength": 14, + "pattern": "^[a-z][a-z0-9]*$", + "example": "dupsite" + }, + "site_label": { + "type": "string", + "description": "Human-readable label for the duplicated site. Must only contain letters, numbers, and spaces. Maximum 50 characters.\n", + "minLength": 1, + "maxLength": 50, + "example": "Duplicated Site" + }, + "site_id": { + "type": "string", + "format": "uuid", + "description": "An optional explicit UUID for the new duplicated site. A UUID is generated automatically if omitted.", + "example": "f1a2b3c4-d5e6-7890-abcd-ef1234567890" + }, + "hook_argument": { + "type": "string", + "description": "Optional hook argument to pass to the duplication process.", + "example": "--verbose" + } + }, + "required": [ + "environment_mapping", + "site_name", + "site_label" + ], + "additionalProperties": false + }, + "examples": { + "duplicate_basic": { + "summary": "Duplicate a site with required fields", + "description": "Duplicates a site with a single environment mapping", + "value": { + "environment_mapping": [ + "0ebce493-9d09-479d-a9a8-138a206fa687:a1b2c3d4-e5f6-7890-abcd-ef1234567890" + ], + "site_name": "dupsite", + "site_label": "Duplicated Site" + } + }, + "duplicate_with_options": { + "summary": "Duplicate a site with all options", + "description": "Duplicates a site specifying a custom site ID and hook argument", + "value": { + "environment_mapping": [ + "0ebce493-9d09-479d-a9a8-138a206fa687:a1b2c3d4-e5f6-7890-abcd-ef1234567890" + ], + "site_name": "duphook", + "site_label": "Dup With Hook", + "site_id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", + "hook_argument": "my-hook-arg" + } + } + } + } + } + }, + "responses": { + "202": { + "description": "Site duplication started", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Site duplication started.", + "description": "Confirmation message" + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890" + }, + "parent": { + "href": "https://cloud.acquia.com/api/sites" + } + }, + "message": "Site duplication started." + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Site_Service_API_BearerAuth": [] + } + ] + } + }, + "/sites/{siteId}/actions/recover": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "post": { + "summary": "Recovers a site that is scheduled for deletion", + "operationId": "recoverSiteBySiteId", + "x-acquia-operation": { + "provider": { + "service": "site-service-php" + } + }, + "x-acquia-exposure": { + "stability": "production", + "audience": [ + "public" + ], + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "sites:recover" + } + } + }, + "tags": [ + "Site_Service_API_Sites" + ], + "parameters": [ + { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "12345678-1234-1234-1234-123456789012" + }, + "description": "Unique identifier for the site" + } + ], + "responses": { + "202": { + "description": "Site recovery started", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Site recovery started.", + "description": "Confirmation message indicating the site recovery has been initiated." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sites/11111111-1111-1111-1111-111111111111" + }, + "parent": { + "href": "https://cloud.acquia.com/api/sites" + } + }, + "message": "Site recovery started." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Site_Service_API_BearerAuth": [] + } + ] + } + }, + "/sites/{siteId}/actions/schedule-delete": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "post": { + "summary": "Schedules a site for deletion", + "operationId": "scheduleDeleteSiteBySiteId", + "x-acquia-operation": { + "provider": { + "service": "site-service-php" + } + }, + "x-acquia-exposure": { + "stability": "production", + "audience": [ + "public" + ], + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "sites:schedule-delete" + } + } + }, + "tags": [ + "Site_Service_API_Sites" + ], + "parameters": [ + { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "12345678-1234-1234-1234-123456789012" + }, + "description": "Unique identifier for the site" + } + ], + "responses": { + "202": { + "description": "Site deletion scheduled", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Site deletion scheduled.", + "description": "Confirmation message indicating the site deletion has been scheduled." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sites/550e8400-e29b-41d4-a716-446655440002" + }, + "parent": { + "href": "https://cloud.acquia.com/api/sites" + } + }, + "message": "Site deletion scheduled." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Site_Service_API_BearerAuth": [] + } + ] + } + }, + "/codebases/{codebaseId}/sites": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves a list of sites associated with a codebase.", + "operationId": "getSitesByCodebaseId", + "x-acquia-operation": { + "provider": { + "service": "site-service-php" + } + }, + "x-acquia-exposure": { + "stability": "production", + "audience": [ + "public" + ], + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "codebases:list-sites" + } + } + }, + "tags": [ + "Site_Service_API_Sites" + ], + "parameters": [ + { + "name": "codebaseId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "550e8400-e29b-41d4-a716-446655441212" + }, + "description": "Unique identifier for the codebase" + }, + { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + }, + { + "name": "filter", + "in": "query", + "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" + }, + "example": "status=active;type=standard" + }, + { + "name": "sort", + "in": "query", + "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" + }, + "example": "name,-created_at" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "description": "A Site resource", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the site", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "12345678-1234-1234-1234-123456789012" + }, + "name": { + "type": "string", + "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", + "minLength": 1, + "maxLength": 14, + "pattern": "^[a-z][a-z0-9]*$", + "example": "mysite" + }, + "label": { + "type": "string", + "description": "The human-readable label of the site", + "minLength": 1, + "maxLength": 50, + "example": "My Site 1" + }, + "description": { + "type": "string", + "description": "A description of the site", + "maxLength": 512, + "example": "A production site for the marketing team." + }, + "codebase_id": { + "type": "string", + "description": "The unique identifier of the codebase this site belongs to", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "550e8400-e29b-41d4-a716-446655441210" + }, + "status": { + "type": "string", + "description": "The current lifecycle status of the site. ready indicates the site is active and operational. marked-for-deletion indicates the site has been scheduled for deletion and can still be recovered.\n", + "enum": [ + "ready", + "marked-for-deletion" + ], + "example": "ready" + }, + "delete_at": { + "type": "string", + "format": "date-time", + "description": "ISO 8601 datetime indicating when the site is scheduled for deletion. Only present when status is marked-for-deletion.", + "example": "2025-06-15T00:00:00Z" + } + }, + "required": [ + "id", + "name", + "label", + "codebase_id", + "status" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "examples": { + "site_collection": { + "summary": "Site collection with pagination", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/sites?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/sites?limit=2{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0{&filter}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0{&sort}", + "templated": true + }, + "next": { + "href": "https://cloud.acquia.com/api/sites?limit=2&offset=2" + } + }, + "count": 2, + "total": 4, + "pagination": { + "total": 4, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", + "name": "mysite", + "label": "My Site", + "description": "A description of my site.", + "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", + "status": "ready", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890" + } + } + }, + { + "id": "e2b3c4d5-f6a7-8901-bcde-f12345678901", + "name": "anothersite", + "label": "Another Site", + "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", + "status": "marked-for-deletion", + "delete_at": "2025-01-01T00:00:00Z", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sites/e2b3c4d5-f6a7-8901-bcde-f12345678901" + } + } + } + ] + } + } + } + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Site_Service_API_BearerAuth": [] + } + ] + } + }, + "/subscriptions/{subscriptionId}/sites": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves a list of sites associated with a subscription.", + "operationId": "getSitesBySubscriptionId", + "x-acquia-operation": { + "provider": { + "service": "site-service-php" + } + }, + "x-acquia-exposure": { + "stability": "production", + "audience": [ + "public" + ], + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "subscriptions:list-sites" + } + } + }, + "tags": [ + "Site_Service_API_Sites" + ], + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "550e8300-e29b-41d4-a716-446655441212" + }, + "description": "Unique identifier for the subscription" + }, + { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + }, + { + "name": "filter", + "in": "query", + "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" + }, + "example": "status=active;type=standard" + }, + { + "name": "sort", + "in": "query", + "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" + }, + "example": "name,-created_at" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "description": "A Site resource", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the site", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "12345678-1234-1234-1234-123456789012" + }, + "name": { + "type": "string", + "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", + "minLength": 1, + "maxLength": 14, + "pattern": "^[a-z][a-z0-9]*$", + "example": "mysite" + }, + "label": { + "type": "string", + "description": "The human-readable label of the site", + "minLength": 1, + "maxLength": 50, + "example": "My Site 1" + }, + "description": { + "type": "string", + "description": "A description of the site", + "maxLength": 512, + "example": "A production site for the marketing team." + }, + "codebase_id": { + "type": "string", + "description": "The unique identifier of the codebase this site belongs to", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "550e8400-e29b-41d4-a716-446655441210" + }, + "status": { + "type": "string", + "description": "The current lifecycle status of the site. ready indicates the site is active and operational. marked-for-deletion indicates the site has been scheduled for deletion and can still be recovered.\n", + "enum": [ + "ready", + "marked-for-deletion" + ], + "example": "ready" + }, + "delete_at": { + "type": "string", + "format": "date-time", + "description": "ISO 8601 datetime indicating when the site is scheduled for deletion. Only present when status is marked-for-deletion.", + "example": "2025-06-15T00:00:00Z" + } + }, + "required": [ + "id", + "name", + "label", + "codebase_id", + "status" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "examples": { + "site_collection": { + "summary": "Site collection with pagination", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/sites?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/sites?limit=2{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0{&filter}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0{&sort}", + "templated": true + }, + "next": { + "href": "https://cloud.acquia.com/api/sites?limit=2&offset=2" + } + }, + "count": 2, + "total": 4, + "pagination": { + "total": 4, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", + "name": "mysite", + "label": "My Site", + "description": "A description of my site.", + "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", + "status": "ready", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890" + } + } + }, + { + "id": "e2b3c4d5-f6a7-8901-bcde-f12345678901", + "name": "anothersite", + "label": "Another Site", + "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", + "status": "marked-for-deletion", + "delete_at": "2025-01-01T00:00:00Z", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sites/e2b3c4d5-f6a7-8901-bcde-f12345678901" + } + } + } + ] + } + } + } + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Site_Service_API_BearerAuth": [] + } + ] + } + }, + "/environments/{environmentId}/sites": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves a list of sites associated with an environment.", + "operationId": "getSitesByEnvironmentId", + "x-acquia-operation": { + "provider": { + "service": "site-service-php" + } + }, + "x-acquia-exposure": { + "stability": "production", + "audience": [ + "public" + ], + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "environments:list-sites" + } + } + }, + "tags": [ + "Site_Service_API_Sites" + ], + "parameters": [ + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "0ebce493-9d09-479d-a9a8-138a206fa687" + }, + "description": "Unique identifier for the environment" + }, + { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + }, + { + "name": "filter", + "in": "query", + "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" + }, + "example": "status=active;type=standard" + }, + { + "name": "sort", + "in": "query", + "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" + }, + "example": "name,-created_at" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "description": "A Site resource", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the site", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "12345678-1234-1234-1234-123456789012" + }, + "name": { + "type": "string", + "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", + "minLength": 1, + "maxLength": 14, + "pattern": "^[a-z][a-z0-9]*$", + "example": "mysite" + }, + "label": { + "type": "string", + "description": "The human-readable label of the site", + "minLength": 1, + "maxLength": 50, + "example": "My Site 1" + }, + "description": { + "type": "string", + "description": "A description of the site", + "maxLength": 512, + "example": "A production site for the marketing team." + }, + "codebase_id": { + "type": "string", + "description": "The unique identifier of the codebase this site belongs to", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "550e8400-e29b-41d4-a716-446655441210" + }, + "status": { + "type": "string", + "description": "The current lifecycle status of the site. ready indicates the site is active and operational. marked-for-deletion indicates the site has been scheduled for deletion and can still be recovered.\n", + "enum": [ + "ready", + "marked-for-deletion" + ], + "example": "ready" + }, + "delete_at": { + "type": "string", + "format": "date-time", + "description": "ISO 8601 datetime indicating when the site is scheduled for deletion. Only present when status is marked-for-deletion.", + "example": "2025-06-15T00:00:00Z" + } + }, + "required": [ + "id", + "name", + "label", + "codebase_id", + "status" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "examples": { + "site_collection": { + "summary": "Site collection with pagination", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/sites?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/sites?limit=2{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0{&filter}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0{&sort}", + "templated": true + }, + "next": { + "href": "https://cloud.acquia.com/api/sites?limit=2&offset=2" + } + }, + "count": 2, + "total": 4, + "pagination": { + "total": 4, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", + "name": "mysite", + "label": "My Site", + "description": "A description of my site.", + "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", + "status": "ready", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890" + } + } + }, + { + "id": "e2b3c4d5-f6a7-8901-bcde-f12345678901", + "name": "anothersite", + "label": "Another Site", + "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", + "status": "marked-for-deletion", + "delete_at": "2025-01-01T00:00:00Z", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sites/e2b3c4d5-f6a7-8901-bcde-f12345678901" + } + } + } + ] + } + } + } + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Site_Service_API_BearerAuth": [] + } + ] + } + }, + "/subscriptions/{subscriptionUuid}/domains": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "operationId": "getDomainsBySubscriptionUuid", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "subscriptions:list-domains" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "cdn-service" + } + }, + "tags": [ + "CDN_API_CDNs" + ], + "summary": "Retrieves a collection of CDN domains for a subscription", + "description": "Retrieves a paginated list of CDN domains for the specified subscription.\n\n**Filtering:**\n - Format: `field=value` or `fieldvalue`\n - AND logic: semicolon (`;`) — `status=active;application_name=my-app`\n - OR logic: comma (`,`) — `status=active,status=pending`\n\n**Sorting:**\n- Format: Comma-delimited fields. Prefix with `-` for descending.\n- Example: `domain,-created_at`\n", + "parameters": [ + { + "name": "subscriptionUuid", + "in": "path", + "required": true, + "description": "The unique identifier of the subscription.", + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + } + }, + { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + }, + { + "name": "filter", + "in": "query", + "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" + }, + "example": "status=active;type=standard" + }, + { + "name": "sort", + "in": "query", + "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" + }, + "example": "name,-created_at" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "description": "CDN domain resource.", + "properties": { + "domain": { + "type": "string", + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?(\\.[a-zA-Z]{2,})+$", + "description": "The fully qualified domain name." + }, + "subscription_uuid": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "The unique identifier of the subscription the domain belongs to." + }, + "environment_id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "The environment identifier associated with the domain." + }, + "application_name": { + "type": "string", + "description": "The name of the application associated with the domain." + }, + "status": { + "type": "string", + "description": "The current status of the domain.", + "enum": [ + "connecting-to-edge", + "domain-validation-pending", + "ready-for-dns-repointing", + "configuration-failed", + "configured" + ] + }, + "ownership_validation_cname": { + "type": "string", + "description": "The CNAME record that must be created on the domain's DNS to validate ownership." + }, + "bandwidth_usage_tb": { + "type": "number", + "format": "float", + "description": "The bandwidth usage for the domain in terabytes." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the domain was created." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the domain was last updated." + } + }, + "required": [ + "domain", + "subscription_uuid", + "environment_id", + "status", + "application_name", + "ownership_validation_cname", + "bandwidth_usage_tb", + "created_at", + "updated_at" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "examples": { + "domains_response": { + "summary": "Domain collection with pagination", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=0{&filter}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=0{&sort}", + "templated": true + }, + "next": { + "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=2" + } + }, + "count": 2, + "total": 50, + "pagination": { + "total": 50, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "domain": "example.com", + "subscription_uuid": "12345678-1234-1234-1234-123456789012", + "environment_id": "0c3f0f5f-5727-4838-9459-2d90ee1cf7c1", + "application_name": "my-application", + "status": "configured", + "created_at": "2024-01-15T10:30:00Z", + "updated_at": "2024-01-20T15:45:00Z", + "ownership_validation_cname": "_acme-challenge.example.com", + "bandwidth_usage_tb": 1.25, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains/example.com" + } + } + }, + { + "domain": "test.example.org", + "subscription_uuid": "12345678-1234-1234-1234-123456789012", + "environment_id": "1d4f1f6f-6838-5949-a560-3e01ff2cf8d2", + "application_name": "test-application", + "status": "connecting-to-edge", + "created_at": "2024-01-18T08:15:00Z", + "ownership_validation_cname": "_acme-challenge.example.com", + "bandwidth_usage_tb": 1.25, + "updated_at": "2024-01-18T08:15:00Z", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains/test.example.org" + } + } + } + ] + } + } + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "CDN_API_BearerAuth": [] + } + ] + } + }, + "/subscriptions/{subscriptionUuid}/domains/{domainName}": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves a domain by domain name.", + "description": "Retrieves the full details of a CDN domain within a subscription, identified by its fully qualified domain name.", + "operationId": "findDomainBySubscriptionUuidAndDomainName", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "subscriptions:find-domain" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "cdn-service" + } + }, + "tags": [ + "CDN_API_CDNs" + ], + "parameters": [ + { + "name": "subscriptionUuid", + "in": "path", + "required": true, + "description": "The unique identifier of the subscription.", + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + } + }, + { + "name": "domainName", + "in": "path", + "required": true, + "description": "The fully qualified domain name.", + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?(\\.[a-zA-Z]{2,})+$" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "description": "CDN domain resource.", + "properties": { + "domain": { + "type": "string", + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?(\\.[a-zA-Z]{2,})+$", + "description": "The fully qualified domain name." + }, + "subscription_uuid": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "The unique identifier of the subscription the domain belongs to." + }, + "environment_id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "The environment identifier associated with the domain." + }, + "application_name": { + "type": "string", + "description": "The name of the application associated with the domain." + }, + "status": { + "type": "string", + "description": "The current status of the domain.", + "enum": [ + "connecting-to-edge", + "domain-validation-pending", + "ready-for-dns-repointing", + "configuration-failed", + "configured" + ] + }, + "ownership_validation_cname": { + "type": "string", + "description": "The CNAME record that must be created on the domain's DNS to validate ownership." + }, + "bandwidth_usage_tb": { + "type": "number", + "format": "float", + "description": "The bandwidth usage for the domain in terabytes." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the domain was created." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the domain was last updated." + } + }, + "required": [ + "domain", + "subscription_uuid", + "environment_id", + "status", + "application_name", + "ownership_validation_cname", + "bandwidth_usage_tb", + "created_at", + "updated_at" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "domain": "example.com", + "subscription_uuid": "12345678-1234-1234-1234-123456789012", + "environment_id": "0c3f0f5f-5727-4838-9459-2d90ee1cf7c1", + "application_name": "my-application", + "status": "configured", + "ownership_validation_cname": "_acme-challenge.example.com", + "bandwidth_usage_tb": 1.25, + "created_at": "2024-01-15T10:30:00Z", + "updated_at": "2024-01-20T15:45:00Z", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains/example.com" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findDomainBySubscriptionUuidAndDomainName", + "parameters": { + "subscriptionUuid": "$request.path.subscriptionUuid", + "domainName": "$request.path.domainName" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "CDN_API_BearerAuth": [] + } + ] + } + }, + "/subscriptions/{subscriptionUuid}/domains/{domainName}/actions/provision": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "post": { + "operationId": "provisionDomainBySubscriptionUuidAndDomainName", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "subscriptions:provision-domain" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "cdn-service" + } + }, + "tags": [ + "CDN_API_CDNs" + ], + "summary": "Provisions a domain for CDN services", + "description": "Provisions a domain for CDN services within a subscription by associating it with an environment.", + "parameters": [ + { + "name": "subscriptionUuid", + "in": "path", + "required": true, + "description": "The unique identifier of the subscription.", + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + } + }, + { + "name": "domainName", + "in": "path", + "required": true, + "description": "The fully qualified domain name.", + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?(\\.[a-zA-Z]{2,})+$" + } + } + ], + "requestBody": { + "description": "Domain CDN provisioning request body", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "environment_id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "The environment identifier that the domain will be associated with for purging purposes." + } + }, + "additionalProperties": false, + "required": [ + "environment_id" + ], + "minProperties": 1 + }, + "example": { + "environment_id": "0c3f0f5f-5727-4838-9459-2d90ee1cf7c1" + } + } + } + }, + "responses": { + "202": { + "description": "Accepted - Provisioning in progress", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "The domain provisioning has been started.", + "description": "Confirmation message" + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains/example.com" + } + }, + "message": "The domain provisioning has been started." + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "CDN_API_BearerAuth": [] + } + ] + } + }, + "/environments/{environmentId}/actions/purge-cdn": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "post": { + "operationId": "purgeCdnByEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "environments:purge-cdn" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "cdn-service" + } + }, + "tags": [ + "CDN_API_CDNs" + ], + "summary": "Creates a CDN cache purge request", + "description": "Creates a request to purge cached content from the CDN for the specified environment.\n\n**Resource Types** (specified in the request body):\n- `urls` - Purge specific URLs\n- `tags` - Purge by cache tags\n- `domains` - Purge entire domains\n- `everything` - Purge all content in the environment\n", + "parameters": [ + { + "name": "environmentId", + "in": "path", + "required": true, + "description": "The unique identifier of the environment.", + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + } + } + ], + "requestBody": { + "description": "Purge request body", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "resource_type": { + "type": "string", + "description": "The type of resource to purge.", + "enum": [ + "tags", + "urls", + "domains", + "everything" + ] + }, + "values": { + "type": "array", + "description": "List of values to purge based on the resource type.\nRequired when `resource_type` is not `everything`.\n", + "items": { + "type": "string" + }, + "minItems": 1 + } + }, + "additionalProperties": false, + "required": [ + "resource_type" + ], + "minProperties": 1 + }, + "examples": { + "purge_urls": { + "summary": "Purge specific URLs", + "value": { + "resource_type": "urls", + "values": [ + "https://example.com/page1", + "https://example.com/page2" + ] + } + }, + "purge_tags": { + "summary": "Purge by cache tags", + "value": { + "resource_type": "tags", + "values": [ + "product-123", + "category-456" + ] + } + }, + "purge_domains": { + "summary": "Purge entire domains", + "value": { + "resource_type": "domains", + "values": [ + "example.com", + "test.example.org" + ] + } + }, + "purge_everything": { + "summary": "Purge everything", + "value": { + "resource_type": "everything" + } + } + } + } + } + }, + "responses": { + "202": { + "description": "Accepted - Purge request submitted", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "The purge request has been submitted.", + "description": "Confirmation message" + }, + "purge_id": { + "type": "string", + "description": "Unique identifier for tracking the purge request" + } + }, + "required": [ + "purge_id" + ] + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/0c3f0f5f-5727-4838-9459-2d90ee1cf7c1/actions/purge-cdn" + } + }, + "message": "The purge request has been submitted.", + "purge_id": "purge-12345678-1234-1234-1234-123456789012" + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "CDN_API_BearerAuth": [] + } + ] + } + }, + "/codebases/{codebaseId}/environments": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves a collection of environments for the specified codebase.", + "operationId": "getEnvironmentsByCodebaseId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "codebases:list-environments" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Environments" + ], + "parameters": [ + { + "name": "codebaseId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Codebase identifier" + }, + { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + }, + { + "name": "filter", + "in": "query", + "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" + }, + "example": "status=active;type=standard" + } + ], + "responses": { + "200": { + "description": "Environment collection", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "description": "Environment properties", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the environment", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "name": { + "type": "string", + "description": "The machine name of the environment" + }, + "label": { + "type": "string", + "description": "The human-readable label of the environment" + }, + "description": { + "type": "string", + "description": "A description of the environment" + }, + "status": { + "type": "string", + "description": "The current status of the environment", + "enum": [ + "normal", + "allocated", + "launching", + "killed", + "cancelled", + "stopped" + ] + }, + "flags": { + "type": "object", + "description": "Environment configuration flags", + "additionalProperties": { + "type": "boolean" + } + }, + "properties": { + "type": "object", + "description": "Environment PHP and server properties", + "properties": { + "version": { + "type": "string", + "description": "PHP version" + }, + "max_execution_time": { + "type": "integer", + "description": "Maximum execution time in seconds" + }, + "memory_limit": { + "type": "integer", + "description": "Memory limit in MB" + }, + "apcu": { + "type": "integer", + "description": "APCu cache size in MB" + }, + "client_max_body_size": { + "type": "integer", + "description": "Maximum client body size in MB" + }, + "max_input_vars": { + "type": "integer", + "description": "Maximum number of input variables" + }, + "max_post_size": { + "type": "integer", + "description": "Maximum POST size in MB" + }, + "memcached_limit": { + "type": "integer", + "description": "Memcached limit in MB" + }, + "upload_max_filesize": { + "type": "integer", + "description": "Maximum upload file size in MB" + }, + "operating_system": { + "type": "string", + "description": "Operating system codename" + } + } + }, + "reference": { + "type": "string", + "description": "The code reference (branch, tag, or commit) deployed to this environment" + }, + "code_switch_status": { + "type": "string", + "description": "The status of the Switch Code action", + "enum": [ + "IDLE", + "IN_PROGRESS" + ] + }, + "ssh_url": { + "type": "string", + "format": "uri", + "description": "The SSH connection string for accessing this environment" + } + }, + "required": [ + "id", + "name", + "label", + "status", + "flags", + "properties", + "reference", + "code_switch_status", + "ssh_url" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2&offset=0{&filter}", + "templated": true + } + }, + "count": 1, + "total": 1, + "pagination": { + "total": 1, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", + "name": "dev", + "label": "Dev", + "description": "Development environment", + "status": "normal", + "reference": "branch/main", + "code_switch_status": "IDLE", + "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", + "flags": { + "production": false, + "protection_mode": false + }, + "properties": { + "version": "8.3" + }, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc" + } + } + } + ] + } + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/codebases/{codebaseId}/environments/{environmentId}": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves details for an environment by codebase and environment ID.", + "operationId": "findEnvironmentByCodebaseIdAndEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "codebases:find-environment" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Environments" + ], + "parameters": [ + { + "name": "codebaseId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Codebase identifier" + }, + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "responses": { + "200": { + "description": "Environment details", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "description": "Environment properties", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the environment", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "name": { + "type": "string", + "description": "The machine name of the environment" + }, + "label": { + "type": "string", + "description": "The human-readable label of the environment" + }, + "description": { + "type": "string", + "description": "A description of the environment" + }, + "status": { + "type": "string", + "description": "The current status of the environment", + "enum": [ + "normal", + "allocated", + "launching", + "killed", + "cancelled", + "stopped" + ] + }, + "flags": { + "type": "object", + "description": "Environment configuration flags", + "additionalProperties": { + "type": "boolean" + } + }, + "properties": { + "type": "object", + "description": "Environment PHP and server properties", + "properties": { + "version": { + "type": "string", + "description": "PHP version" + }, + "max_execution_time": { + "type": "integer", + "description": "Maximum execution time in seconds" + }, + "memory_limit": { + "type": "integer", + "description": "Memory limit in MB" + }, + "apcu": { + "type": "integer", + "description": "APCu cache size in MB" + }, + "client_max_body_size": { + "type": "integer", + "description": "Maximum client body size in MB" + }, + "max_input_vars": { + "type": "integer", + "description": "Maximum number of input variables" + }, + "max_post_size": { + "type": "integer", + "description": "Maximum POST size in MB" + }, + "memcached_limit": { + "type": "integer", + "description": "Memcached limit in MB" + }, + "upload_max_filesize": { + "type": "integer", + "description": "Maximum upload file size in MB" + }, + "operating_system": { + "type": "string", + "description": "Operating system codename" + } + } + }, + "reference": { + "type": "string", + "description": "The code reference (branch, tag, or commit) deployed to this environment" + }, + "code_switch_status": { + "type": "string", + "description": "The status of the Switch Code action", + "enum": [ + "IDLE", + "IN_PROGRESS" + ] + }, + "ssh_url": { + "type": "string", + "format": "uri", + "description": "The SSH connection string for accessing this environment" + } + }, + "required": [ + "id", + "name", + "label", + "status", + "flags", + "properties", + "reference", + "code_switch_status", + "ssh_url" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "codebase": { + "allOf": [ + { + "type": "object", + "description": "Embedded codebase resource", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the codebase" + } + }, + "required": [ + "id" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc" + }, + "codebase": { + "href": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323" + } + }, + "id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", + "name": "environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc", + "label": "Environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc", + "description": "Description of 3e8ecbec-ea7c-4260-8414-ef2938c859bc", + "status": "normal", + "flags": { + "production": false, + "protection_mode": false + }, + "properties": { + "version": "8.3", + "max_execution_time": 10, + "memory_limit": 192, + "apcu": 32, + "client_max_body_size": 192, + "max_input_vars": 1000, + "max_post_size": 256, + "memcached_limit": 128, + "upload_max_filesize": 192, + "operating_system": "focal" + }, + "reference": "tag/v3.1", + "code_switch_status": "IDLE", + "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", + "_embedded": { + "codebase": { + "id": "d3f7270e-c45f-4801-9308-5e8afe84a323", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323" + } + } + } + } + } + } + }, + "links": { + "self": { + "operationId": "findEnvironmentByEnvironmentId", + "parameters": { + "environmentId": "$request.path.environmentId" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/sites/{siteId}/environments": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves a collection of environments for the specified site.", + "operationId": "getEnvironmentsBySiteId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "sites:list-environments" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Environments" + ], + "parameters": [ + { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the site." + }, + { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + } + ], + "responses": { + "200": { + "description": "Environment collection", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "description": "Environment properties", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the environment", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "name": { + "type": "string", + "description": "The machine name of the environment" + }, + "label": { + "type": "string", + "description": "The human-readable label of the environment" + }, + "description": { + "type": "string", + "description": "A description of the environment" + }, + "status": { + "type": "string", + "description": "The current status of the environment", + "enum": [ + "normal", + "allocated", + "launching", + "killed", + "cancelled", + "stopped" + ] + }, + "flags": { + "type": "object", + "description": "Environment configuration flags", + "additionalProperties": { + "type": "boolean" + } + }, + "properties": { + "type": "object", + "description": "Environment PHP and server properties", + "properties": { + "version": { + "type": "string", + "description": "PHP version" + }, + "max_execution_time": { + "type": "integer", + "description": "Maximum execution time in seconds" + }, + "memory_limit": { + "type": "integer", + "description": "Memory limit in MB" + }, + "apcu": { + "type": "integer", + "description": "APCu cache size in MB" + }, + "client_max_body_size": { + "type": "integer", + "description": "Maximum client body size in MB" + }, + "max_input_vars": { + "type": "integer", + "description": "Maximum number of input variables" + }, + "max_post_size": { + "type": "integer", + "description": "Maximum POST size in MB" + }, + "memcached_limit": { + "type": "integer", + "description": "Memcached limit in MB" + }, + "upload_max_filesize": { + "type": "integer", + "description": "Maximum upload file size in MB" + }, + "operating_system": { + "type": "string", + "description": "Operating system codename" + } + } + }, + "reference": { + "type": "string", + "description": "The code reference (branch, tag, or commit) deployed to this environment" + }, + "code_switch_status": { + "type": "string", + "description": "The status of the Switch Code action", + "enum": [ + "IDLE", + "IN_PROGRESS" + ] + }, + "ssh_url": { + "type": "string", + "format": "uri", + "description": "The SSH connection string for accessing this environment" + } + }, + "required": [ + "id", + "name", + "label", + "status", + "flags", + "properties", + "reference", + "code_switch_status", + "ssh_url" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2{&offset}", + "templated": true + } + }, + "count": 1, + "total": 1, + "pagination": { + "total": 1, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", + "name": "dev", + "label": "Dev", + "description": "Development environment", + "status": "normal", + "reference": "branch/main", + "code_switch_status": "IDLE", + "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", + "flags": { + "production": false, + "protection_mode": false + }, + "properties": { + "version": "8.3" + }, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc" + } + } + } + ] + } + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/private-networks/{privateNetworkId}/environments": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves a collection of environments associated with the specified private network.", + "operationId": "getEnvironmentsByPrivateNetworkId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "private-networks:list-environments" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Environments" + ], + "parameters": [ + { + "name": "privateNetworkId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Private network identifier" + }, + { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + } + ], + "responses": { + "200": { + "description": "Environment collection", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "description": "Environment properties", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the environment", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "name": { + "type": "string", + "description": "The machine name of the environment" + }, + "label": { + "type": "string", + "description": "The human-readable label of the environment" + }, + "description": { + "type": "string", + "description": "A description of the environment" + }, + "status": { + "type": "string", + "description": "The current status of the environment", + "enum": [ + "normal", + "allocated", + "launching", + "killed", + "cancelled", + "stopped" + ] + }, + "flags": { + "type": "object", + "description": "Environment configuration flags", + "additionalProperties": { + "type": "boolean" + } + }, + "properties": { + "type": "object", + "description": "Environment PHP and server properties", + "properties": { + "version": { + "type": "string", + "description": "PHP version" + }, + "max_execution_time": { + "type": "integer", + "description": "Maximum execution time in seconds" + }, + "memory_limit": { + "type": "integer", + "description": "Memory limit in MB" + }, + "apcu": { + "type": "integer", + "description": "APCu cache size in MB" + }, + "client_max_body_size": { + "type": "integer", + "description": "Maximum client body size in MB" + }, + "max_input_vars": { + "type": "integer", + "description": "Maximum number of input variables" + }, + "max_post_size": { + "type": "integer", + "description": "Maximum POST size in MB" + }, + "memcached_limit": { + "type": "integer", + "description": "Memcached limit in MB" + }, + "upload_max_filesize": { + "type": "integer", + "description": "Maximum upload file size in MB" + }, + "operating_system": { + "type": "string", + "description": "Operating system codename" + } + } + }, + "reference": { + "type": "string", + "description": "The code reference (branch, tag, or commit) deployed to this environment" + }, + "code_switch_status": { + "type": "string", + "description": "The status of the Switch Code action", + "enum": [ + "IDLE", + "IN_PROGRESS" + ] + }, + "ssh_url": { + "type": "string", + "format": "uri", + "description": "The SSH connection string for accessing this environment" + } + }, + "required": [ + "id", + "name", + "label", + "status", + "flags", + "properties", + "reference", + "code_switch_status", + "ssh_url" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2{&offset}", + "templated": true + } + }, + "count": 1, + "total": 1, + "pagination": { + "total": 1, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", + "name": "dev", + "label": "Dev", + "description": "Development environment", + "status": "normal", + "reference": "branch/main", + "code_switch_status": "IDLE", + "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", + "flags": { + "production": false, + "protection_mode": false + }, + "properties": { + "version": "8.3" + }, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc" + } + } + } + ] + } + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/environments/{environmentId}": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Get environment details.", + "operationId": "findEnvironmentByEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "environments:find" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Environments" + ], + "parameters": [ + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "responses": { + "200": { + "description": "Environment details", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "description": "Environment properties", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the environment", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "name": { + "type": "string", + "description": "The machine name of the environment" + }, + "label": { + "type": "string", + "description": "The human-readable label of the environment" + }, + "description": { + "type": "string", + "description": "A description of the environment" + }, + "status": { + "type": "string", + "description": "The current status of the environment", + "enum": [ + "normal", + "allocated", + "launching", + "killed", + "cancelled", + "stopped" + ] + }, + "flags": { + "type": "object", + "description": "Environment configuration flags", + "additionalProperties": { + "type": "boolean" + } + }, + "properties": { + "type": "object", + "description": "Environment PHP and server properties", + "properties": { + "version": { + "type": "string", + "description": "PHP version" + }, + "max_execution_time": { + "type": "integer", + "description": "Maximum execution time in seconds" + }, + "memory_limit": { + "type": "integer", + "description": "Memory limit in MB" + }, + "apcu": { + "type": "integer", + "description": "APCu cache size in MB" + }, + "client_max_body_size": { + "type": "integer", + "description": "Maximum client body size in MB" + }, + "max_input_vars": { + "type": "integer", + "description": "Maximum number of input variables" + }, + "max_post_size": { + "type": "integer", + "description": "Maximum POST size in MB" + }, + "memcached_limit": { + "type": "integer", + "description": "Memcached limit in MB" + }, + "upload_max_filesize": { + "type": "integer", + "description": "Maximum upload file size in MB" + }, + "operating_system": { + "type": "string", + "description": "Operating system codename" + } + } + }, + "reference": { + "type": "string", + "description": "The code reference (branch, tag, or commit) deployed to this environment" + }, + "code_switch_status": { + "type": "string", + "description": "The status of the Switch Code action", + "enum": [ + "IDLE", + "IN_PROGRESS" + ] + }, + "ssh_url": { + "type": "string", + "format": "uri", + "description": "The SSH connection string for accessing this environment" + } + }, + "required": [ + "id", + "name", + "label", + "status", + "flags", + "properties", + "reference", + "code_switch_status", + "ssh_url" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "codebase": { + "allOf": [ + { + "type": "object", + "description": "Embedded codebase resource", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the codebase" + } + }, + "required": [ + "id" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc" + }, + "codebase": { + "href": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323" + } + }, + "id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", + "name": "environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc", + "label": "Environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc", + "description": "Description of 3e8ecbec-ea7c-4260-8414-ef2938c859bc", + "status": "normal", + "flags": { + "production": false, + "protection_mode": false + }, + "properties": { + "version": "8.3", + "max_execution_time": 10, + "memory_limit": 192, + "apcu": 32, + "client_max_body_size": 192, + "max_input_vars": 1000, + "max_post_size": 256, + "memcached_limit": 128, + "upload_max_filesize": 192, + "operating_system": "focal" + }, + "reference": "tag/v3.1", + "code_switch_status": "IDLE", + "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", + "_embedded": { + "codebase": { + "id": "d3f7270e-c45f-4801-9308-5e8afe84a323", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323" + } + } + } + } + } + } + }, + "links": { + "self": { + "operationId": "findEnvironmentByEnvironmentId", + "parameters": { + "environmentId": "$request.path.environmentId" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + }, + "put": { + "summary": "Modifies properties settings for the specified environment.", + "operationId": "updateEnvironmentByEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "environments:update" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Environments" + ], + "parameters": [ + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "requestBody": { + "description": "Update environment request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "label": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Human-readable label for the environment." + }, + "description": { + "type": "string", + "minLength": 1, + "maxLength": 512, + "description": "Description for the environment." + }, + "properties": { + "type": "object", + "description": "PHP and server configuration properties for the environment.", + "properties": { + "version": { + "type": "string", + "description": "PHP version (e.g. \"8.3\")." + }, + "apcu": { + "type": "integer", + "description": "APCu memory limit in MB." + }, + "max_execution_time": { + "type": "integer", + "description": "PHP max execution time in seconds." + }, + "memory_limit": { + "type": "integer", + "description": "PHP memory limit in MB." + }, + "opcache": { + "type": "integer", + "description": "OPcache memory limit in MB." + }, + "interned_strings_buffer": { + "type": "integer", + "description": "OPcache interned strings buffer in MB." + }, + "client_max_body_size": { + "type": "integer", + "description": "Nginx client_max_body_size in MB." + }, + "upload_max_filesize": { + "type": "integer", + "description": "PHP upload_max_filesize in MB." + }, + "max_post_size": { + "type": "integer", + "description": "PHP post_max_size in MB." + }, + "max_input_vars": { + "type": "integer", + "description": "PHP max_input_vars." + }, + "memcached_limit": { + "type": "integer", + "description": "Memcached memory limit in MB." + }, + "operating_system": { + "type": "string", + "description": "Operating system (e.g. \"focal\")." + }, + "sendmail_path": { + "type": "string", + "description": "Sendmail path configuration." + } + } + } + }, + "additionalProperties": false, + "minProperties": 1 + }, + "examples": { + "update_label": { + "summary": "Update environment label", + "value": { + "label": "Staging", + "description": "Staging environment" + } + }, + "update_properties": { + "summary": "Update PHP properties", + "value": { + "properties": { + "version": "8.3", + "memory_limit": 256 + } + } + } + } + } + } + }, + "responses": { + "202": { + "description": "Environment update started", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Environment update started.", + "description": "Confirmation message that the environment update has been started." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc" + } + }, + "message": "Environment update started." + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/environments/{environmentId}/actions/enable-protection-mode": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "post": { + "summary": "Enable Environment Protection mode.", + "operationId": "enableEnvironmentProtectionModeByEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "environments:enable-protection-mode" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Environments" + ], + "parameters": [ + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "responses": { + "202": { + "description": "Enable protection mode initiated", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Environment protection mode enabled.", + "description": "Confirmation message" + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323" + } + }, + "message": "Environment protection mode enabled." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/environments/{environmentId}/actions/disable-protection-mode": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "post": { + "summary": "Disable Environment Protection mode.", + "operationId": "disableEnvironmentProtectionModeByEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "environments:disable-protection-mode" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Environments" + ], + "parameters": [ + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "responses": { + "202": { + "description": "Disable protection mode initiated", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Environment protection mode disabled.", + "description": "Confirmation message" + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323" + } + }, + "message": "Environment protection mode disabled." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/environments/{environmentId}/actions/clear-caches": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "post": { + "summary": "Clears caches for the specified environment.", + "operationId": "clearEnvironmentCachesByEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "environments:clear-caches" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Environments" + ], + "parameters": [ + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "requestBody": { + "description": "Clear caches request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "domains": { + "type": "array", + "description": "List of domain names to clear caches for.", + "minItems": 1, + "items": { + "type": "string", + "description": "A domain name." + } + } + }, + "required": [ + "domains" + ], + "additionalProperties": false + }, + "examples": { + "clear_caches": { + "summary": "Clear caches for specific domains", + "value": { + "domains": [ + "example.com", + "www.example.com" + ] + } + } + } + } + } + }, + "responses": { + "202": { + "description": "Cache clear started", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Varnish domain cache clear started.", + "description": "Confirmation message that the cache clear has been started." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc" + } + }, + "message": "Varnish domain cache clear started." + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/environments/{environmentId}/eips": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves a collection of egress IPs for the specified environment.", + "operationId": "getEgressIpsByEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "environments:list-egress-ips" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Environments" + ], + "parameters": [ + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + }, + { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + } + ], + "responses": { + "200": { + "description": "Egress IP collection", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "description": "Egress IP properties", + "properties": { + "id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Unique identifier for the egress IP." + }, + "status": { + "type": "string", + "description": "Current status of the egress IP." + }, + "ipv4": { + "type": "string", + "description": "The IPv4 address." + }, + "ipv6": { + "type": [ + "string", + "null" + ], + "description": "The IPv6 address, if assigned." + }, + "flags": { + "type": "object", + "description": "Status flags for the egress IP.", + "additionalProperties": { + "type": "boolean" + } + } + }, + "required": [ + "id", + "status", + "ipv4", + "flags" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/eips?limit=25&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/eips?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/eips?limit=25{&offset}", + "templated": true + } + }, + "count": 1, + "total": 1, + "pagination": { + "total": 1, + "limit": 25, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "eip-a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "status": "active", + "ipv4": "203.0.113.10", + "ipv6": null, + "flags": { + "is_primary": true + } + } + ] + } + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/environments/{environmentId}/private-network": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves the private network associated with the specified environment.", + "operationId": "findPrivateNetworkByEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "environments:find-private-network" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Environments" + ], + "parameters": [ + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "responses": { + "200": { + "description": "Private network details", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "description": "Private network reference properties", + "properties": { + "id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Unique identifier for the private network." + }, + "label": { + "type": [ + "string", + "null" + ], + "description": "Human-readable label for the private network." + } + }, + "required": [ + "id" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "id": "pn-a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "label": "Production VPC", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/private-network" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findPrivateNetworkByEnvironmentId", + "parameters": { + "environmentId": "$request.path.environmentId" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + }, + "put": { + "summary": "Associates the specified environment with a private network.", + "operationId": "saveEnvironmentPrivateNetworkByEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "environments:associate-private-network" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Environments" + ], + "parameters": [ + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "requestBody": { + "description": "Associate private network request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "private_network_id": { + "type": "string", + "description": "The identifier of the private network to associate with this environment." + } + }, + "required": [ + "private_network_id" + ], + "additionalProperties": false, + "minProperties": 1 + }, + "examples": { + "associate": { + "summary": "Associate a private network", + "value": { + "private_network_id": "pn-a1b2c3d4-e5f6-7890-abcd-ef1234567890" + } + } + } + } + } + }, + "responses": { + "202": { + "description": "Private network association started", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Associating private network started.", + "description": "Confirmation message that the association has been started." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/private-network" + } + }, + "message": "Associating private network started." + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + }, + "delete": { + "summary": "Disassociates the specified environment from its private network.", + "operationId": "deleteEnvironmentPrivateNetworkByEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "environments:disassociate-private-network" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Environments" + ], + "parameters": [ + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "responses": { + "202": { + "description": "Private network disassociation started", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Disassociating environment from private network started.", + "description": "Confirmation message that the disassociation has been started." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/private-network" + } + }, + "message": "Disassociating environment from private network started." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/environments/{environmentId}/trusted-proxies": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves the trusted proxy configuration for the specified environment.", + "operationId": "findTrustedProxiesByEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "environments:find-trusted-proxies" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Environments" + ], + "parameters": [ + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "responses": { + "200": { + "description": "Trusted proxy configuration details", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "description": "Trusted proxy configuration properties", + "properties": { + "cidrs_ipv4": { + "type": "array", + "description": "List of trusted IPv4 CIDR blocks.", + "items": { + "type": "string" + } + }, + "cidrs_ipv6": { + "type": "array", + "description": "List of trusted IPv6 CIDR blocks.", + "items": { + "type": "string" + } + }, + "associated_cdns": { + "type": "object", + "description": "Map of CDN configurations associated with this environment, keyed by CDN name.", + "additionalProperties": { + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "Display label for the CDN." + }, + "is_enabled": { + "type": "boolean", + "description": "Whether the CDN is enabled." + } + }, + "required": [ + "label", + "is_enabled" + ] + } + } + }, + "required": [ + "cidrs_ipv4", + "cidrs_ipv6", + "associated_cdns" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "cidrs_ipv4": [ + "203.0.113.0/24" + ], + "cidrs_ipv6": [], + "associated_cdns": { + "cloudflare": { + "label": "Cloudflare", + "is_enabled": true + } + }, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/trusted-proxies" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findTrustedProxiesByEnvironmentId", + "parameters": { + "environmentId": "$request.path.environmentId" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + }, + "put": { + "summary": "Updates the trusted proxy configuration for the specified environment.", + "operationId": "updateTrustedProxiesByEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "environments:update-trusted-proxies" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Environments" + ], + "parameters": [ + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "requestBody": { + "description": "Update trusted proxies request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "cidrs_ipv4": { + "type": "array", + "description": "List of trusted IPv4 CIDR blocks.", + "items": { + "type": "string", + "description": "An IPv4 CIDR block (e.g. \"203.0.113.0/24\")." + } + }, + "cidrs_ipv6": { + "type": "array", + "description": "List of trusted IPv6 CIDR blocks.", + "items": { + "type": "string", + "description": "An IPv6 CIDR block (e.g. \"2001:db8::/32\")." + } + }, + "associated_cdns": { + "type": "array", + "description": "List of CDN names to associate with this environment.", + "items": { + "type": "string", + "enum": [ + "akamai", + "cloudflare", + "fastly" + ] + } + } + }, + "additionalProperties": false, + "minProperties": 1 + }, + "examples": { + "update": { + "summary": "Update trusted proxy configuration", + "value": { + "cidrs_ipv4": [ + "203.0.113.0/24" + ], + "cidrs_ipv6": [], + "associated_cdns": [ + "cloudflare" + ] + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Trusted proxy configuration updated", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Trusted Proxies updated successfully.", + "description": "Confirmation message that the configuration has been updated." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/trusted-proxies" + } + }, + "message": "Trusted Proxies updated successfully." + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/environments/{environmentId}/deployments": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves a collection of deployments for the specified environment.", + "operationId": "getDeploymentsByEnvironmentId", + "tags": [ + "Environment_Service_API_Deployments" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "environments:list-deployments" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "parameters": [ + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + }, + { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + }, + { + "name": "filter", + "in": "query", + "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" + }, + "example": "status=active;type=standard" + }, + { + "name": "sort", + "in": "query", + "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" + }, + "example": "name,-created_at" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "description": "Deployment properties", + "properties": { + "id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Unique identifier for the deployment." + }, + "environment_id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Identifier of the environment this deployment belongs to." + }, + "status": { + "type": "string", + "description": "Current status of the deployment.", + "enum": [ + "waiting", + "received", + "started", + "done", + "failed", + "error", + "killed" + ] + }, + "code_reference": { + "type": "string", + "description": "The code reference (e.g. branch or tag) deployed." + }, + "run_hooks": { + "type": "boolean", + "description": "Whether deployment hooks were run." + }, + "hooks_argument": { + "type": [ + "string", + "null" + ], + "description": "Additional arguments passed to deployment hooks." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the deployment was created." + }, + "started_at": { + "type": [ + "string", + "null" + ], + "format": "date-time", + "description": "Timestamp when the deployment started." + }, + "completed_at": { + "type": [ + "string", + "null" + ], + "format": "date-time", + "description": "Timestamp when the deployment completed." + }, + "sender_id": { + "type": [ + "string", + "null" + ], + "description": "Identifier of the user or system that initiated the deployment." + }, + "logs": { + "type": [ + "string", + "null" + ], + "description": "Deployment log output." + } + }, + "required": [ + "id", + "environment_id", + "status", + "code_reference", + "run_hooks", + "created_at" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "examples": { + "deployment_response": { + "summary": "Deployment collection with pagination", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=2" + }, + "limit": { + "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?offset=2{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=2{&filter}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=2{&sort}", + "templated": true + }, + "prev": { + "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=0" + }, + "next": { + "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=4" + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3", + "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", + "status": "done", + "code_reference": "tags/v1.0.0", + "run_hooks": true, + "hooks_argument": null, + "sender_id": null, + "created_at": "2025-04-01T13:01:06.603Z", + "started_at": "2025-04-01T13:01:10.123Z", + "completed_at": "2025-04-01T13:05:00.000Z", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" + }, + "environment": { + "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323" + } + } + }, + { + "id": "f1dae0f8-67c7-5d1e-cbe1-1f7604f77de4", + "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", + "status": "failed", + "code_reference": "tags/v0.9.0", + "run_hooks": false, + "hooks_argument": null, + "sender_id": null, + "created_at": "2025-03-28T09:15:00.000Z", + "started_at": "2025-03-28T09:15:05.000Z", + "completed_at": "2025-03-28T09:18:00.000Z", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/deployments/f1dae0f8-67c7-5d1e-cbe1-1f7604f77de4" + }, + "environment": { + "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323" + } + } + } + ] + } + } + } + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + }, + "post": { + "summary": "Starts a deployment for the specified environment.", + "operationId": "createDeploymentByEnvironmentId", + "tags": [ + "Environment_Service_API_Deployments" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "environments:create-deployment" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "parameters": [ + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "requestBody": { + "description": "Deployment start request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "run_hooks": { + "type": "boolean", + "description": "Whether to run deployment hooks." + }, + "code_reference": { + "type": "string", + "description": "The code reference (branch or tag) to deploy." + }, + "hooks_argument": { + "type": "string", + "description": "Additional arguments passed to deployment hooks." + } + }, + "required": [ + "run_hooks", + "code_reference" + ], + "additionalProperties": false, + "minProperties": 1 + }, + "examples": { + "start_deployment": { + "summary": "Start a deployment", + "description": "Starts a deployment for the specified environment.", + "value": { + "run_hooks": true, + "code_reference": "release-2025-01-15", + "hooks_argument": "--migrate --clear-cache" + } + } + } + } + } + }, + "responses": { + "202": { + "description": "Deployment started", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Deployment started.", + "description": "Confirmation message that the deployment has been started." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" + } + }, + "message": "Deployment started." + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/environments/{environmentId}/code-deploy": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves the code deploy concurrency setting for the environment.", + "operationId": "findCodeDeployByEnvironmentId", + "tags": [ + "Environment_Service_API_Code Deploys" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "environments:find-code-deploy" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "parameters": [ + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "concurrency": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "description": "Maximum number of concurrent code deploys allowed for the environment." + } + }, + "required": [ + "concurrency" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "concurrency": 5, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/code-deploy" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findCodeDeployByEnvironmentId", + "parameters": { + "environmentId": "$request.path.environmentId" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + }, + "put": { + "summary": "Updates the code deploy concurrency setting for the environment.", + "operationId": "updateCodeDeployByEnvironmentId", + "tags": [ + "Environment_Service_API_Code Deploys" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "environments:update-code-deploy" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "parameters": [ + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "requestBody": { + "description": "Code deploy concurrency update request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "concurrency": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "description": "Maximum number of concurrent code deploys allowed for the environment." + } + }, + "required": [ + "concurrency" + ], + "additionalProperties": false, + "minProperties": 1 + }, + "examples": { + "update_concurrency": { + "summary": "Update code deploy concurrency", + "description": "Sets the maximum concurrent code deploys for the environment.", + "value": { + "concurrency": 10 + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Code deploy concurrency setting updated", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Code deploy settings updated successfully.", + "description": "Confirmation message that the concurrency setting has been updated." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/code-deploy" + } + }, + "message": "Code deploy settings updated successfully." + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/environments/{environmentId}/site-instances": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "post": { + "summary": "Associates a site with the specified environment.", + "operationId": "createSiteInstanceByEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "environments:create-site-instance" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Site Instances" + ], + "parameters": [ + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "requestBody": { + "description": "Create site instance request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "site_id": { + "type": "string", + "description": "The UUID of the site to associate with this environment." + }, + "source_environment_id": { + "type": "string", + "description": "The UUID of the environment to copy files and database from during creation." + }, + "source_site_id": { + "type": "string", + "description": "The UUID of the source site to copy files from during creation." + }, + "hook_arguments": { + "type": "string", + "description": "Additional arguments to pass to deployment hooks during creation." + } + }, + "required": [ + "site_id" + ], + "additionalProperties": false + }, + "examples": { + "create": { + "summary": "Associate a site with an environment", + "value": { + "site_id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc" + } + } + } + } + } + }, + "responses": { + "202": { + "description": "Site instance creation started", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Site instance creation started.", + "description": "Confirmation message that site association has been started." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323" + } + }, + "message": "Site instance creation started." + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/environments/{environmentId}/site-instances/actions/reorder": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "post": { + "summary": "Updates the priority order of site instances for the environment.", + "operationId": "reorderSiteInstancesByEnvironmentId", + "tags": [ + "Environment_Service_API_Site Instances" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "environments:reorder-site-instances" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "parameters": [ + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "requestBody": { + "description": "Site instances reorder request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "site_instance_ids": { + "type": "array", + "description": "List of site instance IDs in the desired priority order.", + "items": { + "type": "string", + "description": "Site instance identifier in the format {siteId}.{environmentId} (dot-separated site and environment UUIDs)." + } + } + }, + "required": [ + "site_instance_ids" + ], + "additionalProperties": false, + "minProperties": 1 + }, + "examples": { + "reorder": { + "summary": "Reorder site instances", + "description": "Provides the desired order of site instance IDs for the environment.", + "value": { + "site_instance_ids": [ + "3e8ecbec-ea7c-4260-8414-ef2938c859bc.a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3", + "b1d8e2f8-67c7-5d1e-cbe1-1f7604f77de4.c2e9f3a9-78d8-6e2f-dcf2-2a8715a88ef5", + "d3fa04ba-89e9-4f3a-edf3-3b9826b99fa6.e4ab15cb-90fa-4a4b-fea4-4c0937c00ab7" + ] + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Site instances reordered successfully", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Site instances reordered successfully.", + "description": "Confirmation message that the site instances have been reordered." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/site-instances" + } + }, + "message": "Site instances reordered successfully." + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/site-instances/{siteId}.{environmentId}": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Get site instance details.", + "operationId": "findSiteInstanceBySiteIdAndEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "site-instances:find" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Site Instances" + ], + "parameters": [ + { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the site." + }, + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "responses": { + "200": { + "description": "Site Instance details", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "description": "Site Instance properties", + "properties": { + "site_id": { + "type": "string", + "description": "The unique identifier of the site", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "environment_id": { + "type": "string", + "description": "The unique identifier of the environment", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "status": { + "type": "string", + "description": "The current status of the site instance", + "enum": [ + "active", + "creating", + "create-failed", + "updating", + "update-failed", + "deleting", + "deleted", + "delete-failed" + ] + }, + "health_status": { + "type": "object", + "description": "Health status information for the site instance", + "properties": { + "code": { + "type": "string", + "description": "Health status code" + }, + "summary": { + "type": "string", + "description": "Summary of the health status" + }, + "details": { + "type": "string", + "description": "Detailed health status information" + } + }, + "required": [ + "code", + "summary", + "details" + ] + }, + "domains": { + "type": "array", + "description": "List of domains associated with the site instance", + "items": { + "type": "string" + } + }, + "deployment_order": { + "type": [ + "integer", + "null" + ], + "description": "The order in which this site instance is deployed relative to others.", + "example": 1 + }, + "delete_at": { + "type": [ + "string", + "null" + ], + "format": "date-time", + "description": "The scheduled deletion date-time for this site instance, if set." + }, + "date_marked_for_deletion": { + "type": [ + "string", + "null" + ], + "format": "date-time", + "description": "The date-time when this site instance was marked for deletion." + }, + "protection_mode": { + "type": [ + "object", + "null" + ], + "description": "The current protection mode of the site instance", + "properties": { + "is_enabled": { + "type": "boolean", + "description": "Indicates whether the protection mode is enabled for the site instance" + }, + "is_inherited": { + "type": "boolean", + "description": "Indicates whether the protection mode is inherited from the environment" + } + }, + "required": [ + "is_enabled", + "is_inherited" + ] + } + }, + "required": [ + "site_id", + "environment_id", + "status", + "health_status", + "domains" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323" + } + }, + "site_id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", + "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", + "status": "active", + "health_status": { + "code": "OK", + "summary": "The health status is OK.", + "details": "The site instance is active" + }, + "domains": [ + "example.com", + "example-2.com" + ], + "protection_mode": { + "is_enabled": true, + "is_inherited": true + } + } + } + }, + "links": { + "self": { + "operationId": "findSiteInstanceBySiteIdAndEnvironmentId", + "parameters": { + "siteId": "$request.path.siteId", + "environmentId": "$request.path.environmentId" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + }, + "delete": { + "summary": "Dissociates a site and environment with no grace period.", + "operationId": "deleteSiteInstanceBySiteIdAndEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "site-instances:delete" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Site Instances" + ], + "parameters": [ + { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the site." + }, + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "responses": { + "202": { + "description": "Site instance deletion started", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Site instance deletion started.", + "description": "Confirmation message that the deletion has been started." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323" + } + }, + "message": "Site instance deletion started." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/site-instances/{siteId}.{environmentId}/files": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "post": { + "summary": "Copies files from one environment to another for the specified site instance.", + "operationId": "copySiteInstanceFilesBySiteIdAndEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "site-instances:copy-files" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Site Instances" + ], + "parameters": [ + { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the site." + }, + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "requestBody": { + "description": "Copy site instance files request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "source_environment_id": { + "type": "string", + "description": "The UUID of the environment to copy files from." + } + }, + "required": [ + "source_environment_id" + ], + "additionalProperties": false + }, + "examples": { + "copy_files": { + "summary": "Copy files from another environment", + "value": { + "source_environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323" + } + } + } + } + } + }, + "responses": { + "202": { + "description": "File copy started", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "File copy started.", + "description": "Confirmation message that the file copy has been started." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323" + } + }, + "message": "File copy started." + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/site-instances/{siteId}.{environmentId}/actions/cancel": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "post": { + "summary": "Dissociates a site and environment.", + "operationId": "cancelSiteInstanceBySiteIdAndEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "site-instances:cancel" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Site Instances" + ], + "parameters": [ + { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the site." + }, + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "responses": { + "202": { + "description": "Site instance cancellation started", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Site instance cancellation started.", + "description": "Confirmation message that the cancellation has been started." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323" + } + }, + "message": "Site instance cancellation started." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/site-instances/{siteId}.{environmentId}/actions/enable-protection-mode": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "post": { + "summary": "Enable Site Instance Protection mode.", + "operationId": "enableSiteInstanceProtectionModeBySiteIdAndEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "site-instances:enable-protection-mode" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Site Instances" + ], + "parameters": [ + { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the site." + }, + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "responses": { + "202": { + "description": "Enable protection mode initiated", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Site instance protection mode enabled.", + "description": "Confirmation message" + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323" + } + }, + "message": "Site instance protection mode enabled." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/site-instances/{siteId}.{environmentId}/actions/disable-protection-mode": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "post": { + "summary": "Disable Site Instance Protection mode.", + "operationId": "disableSiteInstanceProtectionModeBySiteIdAndEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "site-instances:disable-protection-mode" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Site Instances" + ], + "parameters": [ + { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the site." + }, + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "responses": { + "202": { + "description": "Disable protection mode initiated", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Site instance protection mode disabled.", + "description": "Confirmation message" + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323" + } + }, + "message": "Site instance protection mode disabled." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/site-instances/{siteId}.{environmentId}/actions/inherit-protection-mode": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "post": { + "summary": "Inherit Site Instance Protection mode.", + "operationId": "inheritSiteInstanceProtectionModeBySiteIdAndEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "site-instances:inherit-protection-mode" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Site Instances" + ], + "parameters": [ + { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the site." + }, + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "responses": { + "202": { + "description": "Inherit protection mode initiated", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Site instance protection mode inherited from environment.", + "description": "Confirmation message" + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323" + } + }, + "message": "Site instance protection mode inherited from environment." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/site-instances/{siteId}.{environmentId}/actions/recover": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "post": { + "summary": "Recovers a site instance that is scheduled for deletion", + "operationId": "recoverSiteInstanceBySiteIdAndEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "site-instances:recover" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Site Instances" + ], + "parameters": [ + { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the site." + }, + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "responses": { + "202": { + "description": "Site instance restoration started", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Site instance restoration started.", + "description": "Confirmation message" + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323" + }, + "parent": { + "href": "https://cloud.acquia.com/api/site-instances" + } + }, + "message": "Site instance restoration started." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/site-instances/{siteId}.{environmentId}/actions/schedule-delete": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "post": { + "summary": "Schedules a site instance for deletion.", + "operationId": "scheduleDeleteSiteInstanceBySiteIdAndEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "site-instances:schedule-delete" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Site Instances" + ], + "parameters": [ + { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the site." + }, + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "responses": { + "202": { + "description": "Site instance deletion scheduled", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Site instance deletion scheduled.", + "description": "Confirmation message" + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323" + }, + "parent": { + "href": "https://cloud.acquia.com/api/site-instances" + } + }, + "message": "Site instance deletion scheduled." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/site-instances/{siteId}.{environmentId}/domains": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves a collection of domains for the specified site instance.", + "operationId": "getDomainsBySiteIdAndEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "site-instances:list-domains" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Domains" + ], + "parameters": [ + { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the site." + }, + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + }, + { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + }, + { + "name": "filter", + "in": "query", + "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" + }, + "example": "status=active;type=standard" + }, + { + "name": "sort", + "in": "query", + "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" + }, + "example": "name,-created_at" + } + ], + "responses": { + "200": { + "description": "Domain collection", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "description": "Domain properties", + "properties": { + "name": { + "type": "string", + "description": "The domain name." + }, + "is_managed": { + "type": "boolean", + "description": "Whether the domain is managed by Acquia." + } + }, + "required": [ + "name", + "is_managed" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2&offset=0{&filter}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2&offset=0{&sort}", + "templated": true + } + }, + "count": 1, + "total": 1, + "pagination": { + "total": 1, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "name": "example.com", + "is_managed": false, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com" + } + } + } + ] + } + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/site-instances/{siteId}.{environmentId}/domains/{domainName}": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves details for the specified domain on a site instance.", + "operationId": "findDomainBySiteIdAndEnvironmentIdAndDomainName", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "site-instances:find-domain" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Domains" + ], + "parameters": [ + { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the site." + }, + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + }, + { + "name": "domainName", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*$" + }, + "description": "The fully-qualified domain name (e.g., www.example.com)." + } + ], + "responses": { + "200": { + "description": "Domain details", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "description": "Domain properties", + "properties": { + "name": { + "type": "string", + "description": "The domain name." + }, + "is_managed": { + "type": "boolean", + "description": "Whether the domain is managed by Acquia." + } + }, + "required": [ + "name", + "is_managed" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "name": "example.com", + "is_managed": false, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findDomainBySiteIdAndEnvironmentIdAndDomainName", + "parameters": { + "siteId": "$request.path.siteId", + "environmentId": "$request.path.environmentId", + "domainName": "$request.path.domainName" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + }, + "put": { + "summary": "Adds a domain to the specified site instance.", + "operationId": "saveDomainBySiteIdAndEnvironmentIdAndDomainName", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "site-instances:update-domain" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Domains" + ], + "parameters": [ + { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the site." + }, + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + }, + { + "name": "domainName", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*$" + }, + "description": "The fully-qualified domain name (e.g., www.example.com)." + } + ], + "responses": { + "202": { + "description": "Domain addition started", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Domain addition started.", + "description": "Confirmation message that the domain addition has been started." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com" + } + }, + "message": "Domain addition started." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + }, + "delete": { + "summary": "Removes a domain from the specified site instance.", + "operationId": "deleteDomainBySiteIdAndEnvironmentIdAndDomainName", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "site-instances:delete-domain" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Domains" + ], + "parameters": [ + { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the site." + }, + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + }, + { + "name": "domainName", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*$" + }, + "description": "The fully-qualified domain name (e.g., www.example.com)." + } + ], + "responses": { + "202": { + "description": "Domain removal started", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Domain removal started.", + "description": "Confirmation message that the domain removal has been started." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com" + } + }, + "message": "Domain removal started." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/site-instances/{siteId}.{environmentId}/domains/{domainName}/status": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves the DNS status for the specified domain on a site instance.", + "operationId": "findDomainStatusBySiteIdAndEnvironmentIdAndDomainName", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "site-instances:find-domain-status" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Domains" + ], + "parameters": [ + { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the site." + }, + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + }, + { + "name": "domainName", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*$" + }, + "description": "The fully-qualified domain name (e.g., www.example.com)." + } + ], + "responses": { + "200": { + "description": "Domain DNS status details", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "description": "Domain DNS status properties", + "properties": { + "hostname": { + "type": "string", + "description": "The domain name." + }, + "site_id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Identifier of the site this domain belongs to." + }, + "environment_id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Identifier of the environment this domain belongs to." + }, + "ip_addresses": { + "type": "array", + "description": "List of IP addresses resolving for this domain.", + "items": { + "type": "string" + } + }, + "cnames": { + "type": "array", + "description": "List of CNAME records resolving for this domain.", + "items": { + "type": "string" + } + }, + "flags": { + "type": "object", + "description": "Status flags for the domain.", + "properties": { + "default": { + "type": "boolean", + "description": "Whether this is the default domain." + }, + "active": { + "type": "boolean", + "description": "Whether the domain is active." + }, + "dns_resolves": { + "type": "boolean", + "description": "Whether the domain DNS resolves correctly." + }, + "acquia_hosted": { + "type": "boolean", + "description": "Whether the domain is hosted on Acquia infrastructure." + } + }, + "required": [ + "default", + "active", + "dns_resolves", + "acquia_hosted" + ] + } + }, + "required": [ + "hostname", + "site_id", + "environment_id", + "ip_addresses", + "cnames", + "flags" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "hostname": "example.com", + "site_id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", + "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", + "ip_addresses": [ + "203.0.113.10" + ], + "cnames": [], + "flags": { + "default": false, + "active": true, + "dns_resolves": true, + "acquia_hosted": true + }, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com/status" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/site-instances/{siteId}.{environmentId}/database": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves database details for the specified site instance.", + "operationId": "findDatabaseBySiteIdAndEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "site-instances:find-database" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Site Instance Databases" + ], + "parameters": [ + { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the site." + }, + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "responses": { + "200": { + "description": "Database details", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "description": "Database properties", + "properties": { + "database_name": { + "type": "string", + "description": "The name of the database." + }, + "database_role": { + "type": "string", + "description": "The role of the database (e.g. the site username)." + } + }, + "required": [ + "database_name", + "database_role" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "database_name": "site_dev", + "database_role": "site_dev_user", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findDatabaseBySiteIdAndEnvironmentId", + "parameters": { + "siteId": "$request.path.siteId", + "environmentId": "$request.path.environmentId" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + }, + "post": { + "summary": "Copies a database from another environment to the specified site instance.", + "operationId": "copySiteInstanceDatabaseBySiteIdAndEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "site-instances:copy-database" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Site Instance Databases" + ], + "parameters": [ + { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the site." + }, + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "requestBody": { + "description": "Copy site instance database request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "source_environment_id": { + "type": "string", + "description": "The UUID of the environment to copy the database from." + } + }, + "required": [ + "source_environment_id" + ], + "additionalProperties": false + }, + "examples": { + "copy_database": { + "summary": "Copy database from another environment", + "value": { + "source_environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323" + } + } + } + } + } + }, + "responses": { + "202": { + "description": "Database copy started", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Database copy started.", + "description": "Confirmation message that the database copy has been started." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database" + } + }, + "message": "Database copy started." + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/site-instances/{siteId}.{environmentId}/database/connection": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves database connection credentials for the specified site instance.", + "operationId": "findDatabaseConnectionBySiteIdAndEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "site-instances:find-database-connection" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Site Instance Databases" + ], + "parameters": [ + { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the site." + }, + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "responses": { + "200": { + "description": "Database connection credential details", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "description": "Database connection credential properties", + "properties": { + "db_host": { + "type": "string", + "description": "The database host." + }, + "name": { + "type": "string", + "description": "The database name." + }, + "password": { + "type": "string", + "description": "The database password." + }, + "user_name": { + "type": "string", + "description": "The database username." + }, + "ssh_host": { + "type": "string", + "description": "The SSH host for tunneling to the database." + } + }, + "required": [ + "db_host", + "name", + "password", + "user_name", + "ssh_host" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "db_host": "db.example.com", + "name": "site_dev", + "password": "s3cr3t", + "user_name": "site_dev_user", + "ssh_host": "site.dev.ssh.hosted.acquia-sites.com", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/connection" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/site-instances/{siteId}.{environmentId}/database/backups": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves a collection of database backups for the specified site instance.", + "operationId": "getDatabaseBackupsBySiteIdAndEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "site-instances:list-database-backups" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Site Instance Databases" + ], + "parameters": [ + { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the site." + }, + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + }, + { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + }, + { + "name": "filter", + "in": "query", + "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" + }, + "example": "status=active;type=standard" + }, + { + "name": "sort", + "in": "query", + "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" + }, + "example": "name,-created_at" + } + ], + "responses": { + "200": { + "description": "Database backup collection", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "description": "Database backup properties", + "properties": { + "id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Unique identifier for the database backup." + }, + "database_id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Identifier of the database this backup belongs to." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the backup was created." + }, + "type": { + "type": "string", + "enum": [ + "DAILY", + "ON_DEMAND" + ], + "description": "The type of backup." + } + }, + "required": [ + "id", + "database_id", + "created_at", + "type" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2&offset=0{&filter}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2&offset=0{&sort}", + "templated": true + } + }, + "count": 1, + "total": 1, + "pagination": { + "total": 1, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "database_id": "b2c3d4e5-f6a7-8901-bcde-f01234567891", + "created_at": "2025-04-01T02:00:00.000Z", + "type": "DAILY", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups/a1b2c3d4-e5f6-7890-abcd-ef1234567890" + } + } + } + ] + } + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + }, + "post": { + "summary": "Creates a database backup for the specified site instance.", + "operationId": "createDatabaseBackupBySiteIdAndEnvironmentId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "site-instances:create-database-backup" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Site Instance Databases" + ], + "parameters": [ + { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the site." + }, + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "responses": { + "202": { + "description": "Database backup creation started", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Database backup started.", + "description": "Confirmation message that the database backup has been started." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups" + } + }, + "message": "Database backup started." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/site-instances/{siteId}.{environmentId}/database/backups/{backupId}": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves details for the specified database backup.", + "operationId": "findDatabaseBackupBySiteIdAndEnvironmentIdAndBackupId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "site-instances:find-database-backup" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Site Instance Databases" + ], + "parameters": [ + { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the site." + }, + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + }, + { + "name": "backupId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Database backup identifier" + } + ], + "responses": { + "200": { + "description": "Database backup details", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "description": "Database backup properties", + "properties": { + "id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Unique identifier for the database backup." + }, + "database_id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Identifier of the database this backup belongs to." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the backup was created." + }, + "type": { + "type": "string", + "enum": [ + "DAILY", + "ON_DEMAND" + ], + "description": "The type of backup." + } + }, + "required": [ + "id", + "database_id", + "created_at", + "type" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "database_id": "b2c3d4e5-f6a7-8901-bcde-f01234567891", + "created_at": "2025-04-01T02:00:00.000Z", + "type": "DAILY", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups/a1b2c3d4-e5f6-7890-abcd-ef1234567890" + }, + "download": { + "href": "https://s3.amazonaws.com/acquia-backups/backup-a1b2c3d4.sql.gz?X-Amz-Expires=3600&X-Amz-Signature=abc123" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findDatabaseBackupBySiteIdAndEnvironmentIdAndBackupId", + "parameters": { + "siteId": "$request.path.siteId", + "environmentId": "$request.path.environmentId", + "backupId": "$request.path.backupId" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + }, + "delete": { + "summary": "Deletes the specified database backup.", + "operationId": "deleteDatabaseBackupBySiteIdAndEnvironmentIdAndBackupId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "site-instances:delete-database-backup" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Site Instance Databases" + ], + "parameters": [ + { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the site." + }, + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + }, + { + "name": "backupId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Database backup identifier" + } + ], + "responses": { + "202": { + "description": "Database backup deletion started", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Database backup deletion started.", + "description": "Confirmation message that the deletion has been started." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups/a1b2c3d4-e5f6-7890-abcd-ef1234567890" + } + }, + "message": "Database backup deletion started." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/site-instances/{siteId}.{environmentId}/database/backups/{backupId}/actions/restore": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "post": { + "summary": "Restores the specified database backup to the site instance.", + "operationId": "restoreDatabaseBackupBySiteIdAndEnvironmentIdAndBackupId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "site-instances:restore-database-backup" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "tags": [ + "Environment_Service_API_Site Instance Databases" + ], + "parameters": [ + { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the site." + }, + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + }, + { + "name": "backupId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Database backup identifier" + } + ], + "responses": { + "202": { + "description": "Database backup restore started", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Database restore started.", + "description": "Confirmation message that the restore has been started." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups/a1b2c3d4-e5f6-7890-abcd-ef1234567890" + } + }, + "message": "Database restore started." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/deployments/{deploymentId}": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves the status of a deployment by deployment ID.", + "operationId": "findDeploymentByDeploymentId", + "tags": [ + "Environment_Service_API_Deployments" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "deployments:find" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "parameters": [ + { + "name": "deploymentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the deployment." + } + ], + "responses": { + "200": { + "description": "Deployment details", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "description": "Deployment properties", + "properties": { + "id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Unique identifier for the deployment." + }, + "environment_id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Identifier of the environment this deployment belongs to." + }, + "status": { + "type": "string", + "description": "Current status of the deployment.", + "enum": [ + "waiting", + "received", + "started", + "done", + "failed", + "error", + "killed" + ] + }, + "code_reference": { + "type": "string", + "description": "The code reference (e.g. branch or tag) deployed." + }, + "run_hooks": { + "type": "boolean", + "description": "Whether deployment hooks were run." + }, + "hooks_argument": { + "type": [ + "string", + "null" + ], + "description": "Additional arguments passed to deployment hooks." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the deployment was created." + }, + "started_at": { + "type": [ + "string", + "null" + ], + "format": "date-time", + "description": "Timestamp when the deployment started." + }, + "completed_at": { + "type": [ + "string", + "null" + ], + "format": "date-time", + "description": "Timestamp when the deployment completed." + }, + "sender_id": { + "type": [ + "string", + "null" + ], + "description": "Identifier of the user or system that initiated the deployment." + }, + "logs": { + "type": [ + "string", + "null" + ], + "description": "Deployment log output." + } + }, + "required": [ + "id", + "environment_id", + "status", + "code_reference", + "run_hooks", + "created_at" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "id": "e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3", + "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", + "status": "started", + "code_reference": "tags/v1.0.0", + "run_hooks": true, + "hooks_argument": "--skip-db-update", + "created_at": "2025-04-01T13:01:06.603Z", + "started_at": "2025-04-01T13:01:10.123Z", + "completed_at": null, + "sender_id": null, + "logs": null, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" + }, + "environment": { + "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findDeploymentByDeploymentId", + "parameters": { + "deploymentId": "$request.path.deploymentId" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/deployments/{deploymentId}/actions/stop": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "post": { + "summary": "Stops a deployment by sending a stop request.", + "operationId": "stopDeploymentByDeploymentId", + "tags": [ + "Environment_Service_API_Deployments" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "deployments:stop" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "parameters": [ + { + "name": "deploymentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the deployment." + } + ], + "responses": { + "202": { + "description": "Deployment stop initiated", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Deployment stop initiated.", + "description": "Confirmation message that the deployment stop has been initiated." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" + } + }, + "message": "Deployment stop initiated." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/deployments/{deploymentId}/actions/terminate": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "post": { + "summary": "Terminates a deployment immediately.", + "operationId": "terminateDeploymentByDeploymentId", + "tags": [ + "Environment_Service_API_Deployments" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "deployments:terminate" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "parameters": [ + { + "name": "deploymentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the deployment." + } + ], + "responses": { + "202": { + "description": "Deployment termination is initiated", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Deployment termination initiated.", + "description": "Confirmation message that the deployment termination has been initiated." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" + } + }, + "message": "Deployment termination initiated." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/environments/{environmentId}/domain-patterns": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves a collection of domain patterns for the specified environment.", + "operationId": "getDomainPatternsByEnvironmentId", + "tags": [ + "Environment_Service_API_Domain Patterns" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "environments:list-domain-patterns" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "parameters": [ + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + }, + { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + }, + { + "name": "sort", + "in": "query", + "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" + }, + "example": "name,-created_at" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Unique identifier for the domain pattern." + }, + "pattern": { + "type": "string", + "maxLength": 455, + "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", + "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].acme.com/app). The [site-name] token is mandatory; [environment-name] is optional at environment level. Domain rules (enforced in service layer): ≤ 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] ≤ 14 chars). One pattern per environment.\n", + "example": "[site-name].acme.com" + } + }, + "required": [ + "id", + "pattern" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "examples": { + "domain_pattern_collection": { + "summary": "Domain pattern collection", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns" + }, + "limit": { + "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25{&offset}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25&offset=0{&sort}", + "templated": true + } + }, + "count": 1, + "total": 1, + "pagination": { + "total": 1, + "limit": 25, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "11111111-1111-1111-1111-111111111111", + "pattern": "[site-name].acme.com", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111" + } + } + } + ] + } + } + }, + "domain_pattern_collection_empty": { + "summary": "Empty domain pattern collection", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns" + }, + "limit": { + "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25{&offset}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25&offset=0{&sort}", + "templated": true + } + }, + "count": 0, + "total": 0, + "pagination": { + "total": 0, + "limit": 25, + "offset": 0 + }, + "_embedded": { + "items": [] + } + } + } + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + }, + "post": { + "summary": "Creates a domain pattern for the specified environment.", + "operationId": "createDomainPatternByEnvironmentId", + "tags": [ + "Environment_Service_API_Domain Patterns" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "environments:create-domain-pattern" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "parameters": [ + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + } + ], + "requestBody": { + "description": "Create domain pattern request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "pattern": { + "type": "string", + "maxLength": 455, + "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", + "description": "The domain pattern to apply to all associated sites in this environment, optionally followed by a single path segment. The [site-name] token is mandatory; [environment-name] is optional. Domain ≤ 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per environment) are enforced at the service layer.\n", + "example": "[site-name].acme.com" + } + }, + "required": [ + "pattern" + ], + "additionalProperties": false + }, + "examples": { + "create_domain_pattern": { + "summary": "Create a domain pattern", + "value": { + "pattern": "[site-name].acme.com" + } + } + } + } + } + }, + "responses": { + "202": { + "description": "Domain pattern creation initiated.", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "The domain pattern is being applied to all associated sites in this environment.", + "description": "Confirmation message that the domain pattern is being applied." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111" + } + }, + "message": "The domain pattern is being applied to all associated sites in this environment." + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/environments/{environmentId}/domain-patterns/{patternId}": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Retrieves a domain pattern by environment ID and pattern ID.", + "operationId": "findDomainPatternByEnvironmentIdAndPatternId", + "tags": [ + "Environment_Service_API_Domain Patterns" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "environments:find-domain-pattern" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "parameters": [ + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + }, + { + "name": "patternId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the domain pattern." + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Unique identifier for the domain pattern." + }, + "pattern": { + "type": "string", + "maxLength": 455, + "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", + "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].acme.com/app). The [site-name] token is mandatory; [environment-name] is optional at environment level. Domain rules (enforced in service layer): ≤ 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] ≤ 14 chars). One pattern per environment.\n", + "example": "[site-name].acme.com" + } + }, + "required": [ + "id", + "pattern" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "id": "11111111-1111-1111-1111-111111111111", + "pattern": "[site-name].acme.com", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findDomainPatternByEnvironmentIdAndPatternId", + "parameters": { + "environmentId": "$request.path.environmentId", + "patternId": "$request.path.patternId" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + }, + "put": { + "summary": "Updates a domain pattern for the specified environment.", + "operationId": "updateDomainPatternByEnvironmentIdAndPatternId", + "tags": [ + "Environment_Service_API_Domain Patterns" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "environments:update-domain-pattern" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "parameters": [ + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + }, + { + "name": "patternId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the domain pattern." + } + ], + "requestBody": { + "description": "Update domain pattern request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "pattern": { + "type": "string", + "maxLength": 455, + "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", + "description": "The updated domain pattern to apply to all associated sites in this environment, optionally followed by a single path segment. The [site-name] token is mandatory. Domain ≤ 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per environment) are enforced at the service layer.\n" + } + }, + "required": [ + "pattern" + ], + "additionalProperties": false, + "minProperties": 1 + }, + "examples": { + "update_domain_pattern": { + "summary": "Update a domain pattern", + "value": { + "pattern": "[site-name].staging.acme.com" + } + } + } + } + } + }, + "responses": { + "202": { + "description": "Domain pattern update initiated.", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "The domain pattern update is being applied to all associated sites in this environment.", + "description": "Confirmation message that the domain pattern update is being applied." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111" + } + }, + "message": "The domain pattern update is being applied to all associated sites in this environment." + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + }, + "delete": { + "summary": "Deletes a domain pattern for the specified environment. Engineering role only.", + "operationId": "deleteDomainPatternByEnvironmentIdAndPatternId", + "tags": [ + "Environment_Service_API_Domain Patterns" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "environments:delete-domain-pattern" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "environment-service" + } + }, + "parameters": [ + { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + }, + { + "name": "patternId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the domain pattern." + } + ], + "responses": { + "202": { + "description": "Domain pattern deletion initiated. The 202 covers two async operations: (1) removal of the pattern record and (2) a bulk cleanup that disassociates any URLs already generated from this pattern on all associated site instances in the environment. Both operations complete before the final settled state is observable.\n", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "The domain pattern is being removed from all associated sites in this environment.", + "description": "Confirmation message that the domain pattern is being removed." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111" + } + }, + "message": "The domain pattern is being removed from all associated sites in this environment." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Environment_Service_API_BearerAuth": [] + } + ] + } + }, + "/subscriptions/{subscriptionId}/sso-domains": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "post": { + "operationId": "createSsoDomainBySubscriptionId", + "summary": "Create a new domain for federated SSO.", + "tags": [ + "Federated_Authentication_API_Domains" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "subscriptions:create-sso-domain" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "identity-service" + } + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the subscription." + } + ], + "requestBody": { + "description": "Request body for creating a new domain.", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "type": "string", + "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", + "description": "The domain name to create (e.g., \"acme.com\")." + } + }, + "required": [ + "domain" + ], + "additionalProperties": false + }, + "example": { + "domain": "acme.com" + } + } + } + }, + "responses": { + "202": { + "description": "Domain creation accepted. The domain is being added to your subscription. To complete verification, add the provided DNS TXT record and call the verify action.", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "const": "Domain creation has been accepted." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sso-domains/dom-456" + } + }, + "message": "Domain creation has been accepted." + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Federated_Authentication_API_BearerAuth": [] + } + ] + }, + "get": { + "summary": "Return a list of domains for a subscription.", + "operationId": "getSsoDomainsBySubscriptionId", + "tags": [ + "Federated_Authentication_API_Domains" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "subscriptions:list-sso-domains" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "identity-service" + } + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the subscription." + }, + { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + }, + { + "name": "sort", + "in": "query", + "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" + }, + "example": "name,-created_at" + }, + { + "name": "filter", + "in": "query", + "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" + }, + "example": "status=active;type=standard" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "domain_id": { + "type": "string", + "description": "Unique identifier for the domain." + }, + "domain": { + "type": "string", + "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", + "description": "The domain name (e.g., \"acme.com\")." + }, + "subscription_id": { + "type": "string", + "description": "Unique identifier for the subscription that the domain belongs to." + }, + "health": { + "type": "object", + "description": "The overall verification health of the domain. Uses the same code semantics as the platform email domain-verification system: `200` verified, `202` verification pending or in progress, `404` DNS record not found or could not be validated.", + "properties": { + "code": { + "type": "string", + "enum": [ + "200", + "202", + "404" + ], + "description": "Machine-readable verification status code. `200` — verified. `202` — verification pending or in progress; retry after propagation. `404` — DNS TXT record not found or does not match expected value." + }, + "summary": { + "type": "string", + "description": "Short human-readable label for the verification state (e.g., \"Verified\", \"Verification pending\", \"Missing DNS record\")." + }, + "details": { + "type": "string", + "description": "Actionable explanation of the current state. For `404`, describes what was checked and what the customer should do next." + } + }, + "required": [ + "code", + "summary", + "details" + ] + }, + "verification_record": { + "type": "object", + "description": "DNS TXT record the customer must publish to verify domain ownership.", + "properties": { + "type": { + "type": "string", + "const": "TXT", + "description": "DNS record type." + }, + "host": { + "type": "string", + "description": "DNS record host name." + }, + "value": { + "type": "string", + "description": "Expected DNS record value." + }, + "health": { + "type": "object", + "description": "Verification health specific to this DNS record. Anchors the failure reason to the exact record the customer needs to fix, matching the per-record health pattern used in platform email domain verification.", + "properties": { + "code": { + "type": "string", + "enum": [ + "200", + "202", + "404" + ], + "description": "`200` — record found and value matches. `202` — check in progress. `404` — record not found or value does not match." + }, + "summary": { + "type": "string", + "description": "Short human-readable label for this record's verification state." + }, + "details": { + "type": "string", + "description": "Actionable explanation; for `404`, states what was checked and what to fix." + } + }, + "required": [ + "code", + "summary", + "details" + ] + } + }, + "required": [ + "type", + "host", + "value", + "health" + ] + }, + "verified_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the domain was successfully verified. Present only when `health.code` is `200`." + } + }, + "required": [ + "domain_id", + "domain", + "subscription_id", + "health", + "verification_record" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "examples": { + "domain_response": { + "summary": "Domain collection with pagination", + "description": "Two domains in different states: one verified and in use by a policy (carries `identity_providers` link), one pending verification (carries `verify` link).", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?limit=2&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?limit=2{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?limit=2&offset=0{&filter}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?limit=2&offset=0{&sort}", + "templated": true + }, + "next": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?offset=2&limit=2" + } + }, + "count": 2, + "total": 3, + "pagination": { + "total": 3, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "domain_id": "dom-456", + "domain": "acme.com", + "subscription_id": "sub-123", + "health": { + "code": "200", + "summary": "Verified", + "details": "The DNS TXT record has been confirmed and the domain is verified." + }, + "verification_record": { + "type": "TXT", + "host": "_acquia-challenge.acme.com", + "value": "abc123def456", + "health": { + "code": "200", + "summary": "Verified", + "details": "The TXT record at _acquia-challenge.acme.com matches the expected value." + } + }, + "verified_at": "2026-04-15T10:30:00Z", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sso-domains/dom-456" + }, + "identity_providers": { + "href": "https://cloud.acquia.com/api/identity-providers?filter=domain_id%3Ddom-456" + } + } + }, + { + "domain_id": "dom-789", + "domain": "acme.corp", + "subscription_id": "sub-123", + "health": { + "code": "202", + "summary": "Verification pending", + "details": "Acquia is waiting to confirm the DNS TXT record. Ensure the record has been published and allow time for DNS propagation, then retry verification." + }, + "verification_record": { + "type": "TXT", + "host": "_acquia-challenge.acme.corp", + "value": "xyz789abc123", + "health": { + "code": "202", + "summary": "Check in progress", + "details": "The TXT record check has not yet completed." + } + }, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sso-domains/dom-789" + }, + "verify": { + "href": "https://cloud.acquia.com/api/sso-domains/dom-789/actions/verify" + } + } + } + ] + } + } + } + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Federated_Authentication_API_BearerAuth": [] + } + ] + } + }, + "/subscriptions/{subscriptionId}/identity-providers": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "post": { + "operationId": "createIdentityProviderBySubscriptionId", + "summary": "Create a new Identity Provider.", + "tags": [ + "Federated_Authentication_API_Identity Providers" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "subscriptions:create-identity-provider" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "identity-service" + } + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the subscription." + } + ], + "requestBody": { + "description": "Request body for creating a new Identity Provider.", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "idp_entity_id": { + "type": "string", + "format": "uri", + "description": "The Identity Provider Entity ID." + }, + "label": { + "type": "string", + "description": "The name of the Identity Provider." + }, + "sso_url": { + "type": "string", + "format": "uri", + "description": "The SSO URL for this IdP." + }, + "certificate": { + "type": "string", + "description": "The certificate for this IdP." + } + }, + "required": [ + "label", + "idp_entity_id", + "sso_url", + "certificate" + ], + "additionalProperties": false + }, + "example": { + "label": "Acme Corporation Azure AD", + "idp_entity_id": "https://idp.acme.com/saml", + "sso_url": "https://acme.com/sso", + "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----" + } + } + } + }, + "responses": { + "202": { + "description": "Identity Provider creation initiated. The Identity Provider is being provisioned. Poll the Identity Provider resource to check when it becomes active.", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "const": "Identity Provider creation has been accepted." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f" + } + }, + "message": "Identity Provider creation has been accepted." + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Federated_Authentication_API_BearerAuth": [] + } + ] + }, + "get": { + "summary": "Return a list of Identity Providers for a subscription.", + "operationId": "getIdentityProvidersBySubscriptionId", + "tags": [ + "Federated_Authentication_API_Identity Providers" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "subscriptions:list-identity-providers" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "identity-service" + } + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the subscription." + }, + { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + }, + { + "name": "sort", + "in": "query", + "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" + }, + "example": "name,-created_at" + }, + { + "name": "filter", + "in": "query", + "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" + }, + "example": "status=active;type=standard" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "identity_provider_id": { + "type": "string", + "description": "Unique identifier for the identity provider." + }, + "label": { + "type": "string", + "description": "The name of the Identity Provider." + }, + "subscription_id": { + "type": "string", + "description": "Unique identifier for the subscription that the Identity Provider belongs to." + }, + "idp_entity_id": { + "type": "string", + "format": "uri", + "description": "The Identity Provider Entity ID." + }, + "sp_entity_id": { + "type": "string", + "format": "uri", + "description": "The Service Provider Entity ID." + }, + "sso_url": { + "type": "string", + "format": "uri", + "description": "The Single Sign-On URL for the Identity Provider." + }, + "certificate": { + "type": "string", + "description": "The X.509 certificate used for SAML authentication." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the Identity Provider was created." + } + }, + "required": [ + "identity_provider_id", + "label", + "subscription_id", + "idp_entity_id", + "sp_entity_id", + "sso_url", + "certificate", + "created_at" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "examples": { + "identity_provider_response": { + "summary": "Identity provider collection with pagination", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2&offset=2" + }, + "limit": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?offset=2{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2&offset=2{&filter}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2&offset=2{&sort}", + "templated": true + }, + "prev": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2&offset=0" + }, + "next": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?offset=4&limit=2" + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "identity_provider_id": "908914ec-2354-4fb1-9298-637247eccc3a", + "label": "Acme Corporation Azure AD", + "subscription_id": "sub-123", + "idp_entity_id": "https://idp.acme.com/saml", + "sp_entity_id": "https://sp.acme.com/saml", + "sso_url": "https://acme.com/sso", + "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", + "created_at": "2026-04-15T11:00:00Z", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a" + }, + "sso_policy": { + "href": "https://cloud.acquia.com/api/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a/policies/sso" + } + } + }, + { + "identity_provider_id": "123456ec-2354-4fb1-9298-637247eccc3b", + "label": "Acme Research Ping Identity", + "subscription_id": "sub-123", + "idp_entity_id": "https://idp-research.acme.com/saml", + "sp_entity_id": "https://sp-research.acme.com/saml", + "sso_url": "https://research.acme.com/sso", + "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", + "created_at": "2026-04-20T14:20:00Z", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/identity-providers/123456ec-2354-4fb1-9298-637247eccc3b" + }, + "sso_policy": { + "href": "https://cloud.acquia.com/api/identity-providers/123456ec-2354-4fb1-9298-637247eccc3b/policies/sso" + } + } + } + ] + } + } + } + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Federated_Authentication_API_BearerAuth": [] + } + ] + } + }, + "/sso-domains": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Return a list of all accessible domains.", + "operationId": "getSsoDomains", + "tags": [ + "Federated_Authentication_API_Domains" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "sso-domains:list" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "identity-service" + } + }, + "parameters": [ + { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + }, + { + "name": "sort", + "in": "query", + "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" + }, + "example": "name,-created_at" + }, + { + "name": "filter", + "in": "query", + "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" + }, + "example": "status=active;type=standard" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "domain_id": { + "type": "string", + "description": "Unique identifier for the domain." + }, + "domain": { + "type": "string", + "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", + "description": "The domain name (e.g., \"acme.com\")." + }, + "subscription_id": { + "type": "string", + "description": "Unique identifier for the subscription that the domain belongs to." + }, + "health": { + "type": "object", + "description": "The overall verification health of the domain. Uses the same code semantics as the platform email domain-verification system: `200` verified, `202` verification pending or in progress, `404` DNS record not found or could not be validated.", + "properties": { + "code": { + "type": "string", + "enum": [ + "200", + "202", + "404" + ], + "description": "Machine-readable verification status code. `200` — verified. `202` — verification pending or in progress; retry after propagation. `404` — DNS TXT record not found or does not match expected value." + }, + "summary": { + "type": "string", + "description": "Short human-readable label for the verification state (e.g., \"Verified\", \"Verification pending\", \"Missing DNS record\")." + }, + "details": { + "type": "string", + "description": "Actionable explanation of the current state. For `404`, describes what was checked and what the customer should do next." + } + }, + "required": [ + "code", + "summary", + "details" + ] + }, + "verification_record": { + "type": "object", + "description": "DNS TXT record the customer must publish to verify domain ownership.", + "properties": { + "type": { + "type": "string", + "const": "TXT", + "description": "DNS record type." + }, + "host": { + "type": "string", + "description": "DNS record host name." + }, + "value": { + "type": "string", + "description": "Expected DNS record value." + }, + "health": { + "type": "object", + "description": "Verification health specific to this DNS record. Anchors the failure reason to the exact record the customer needs to fix, matching the per-record health pattern used in platform email domain verification.", + "properties": { + "code": { + "type": "string", + "enum": [ + "200", + "202", + "404" + ], + "description": "`200` — record found and value matches. `202` — check in progress. `404` — record not found or value does not match." + }, + "summary": { + "type": "string", + "description": "Short human-readable label for this record's verification state." + }, + "details": { + "type": "string", + "description": "Actionable explanation; for `404`, states what was checked and what to fix." + } + }, + "required": [ + "code", + "summary", + "details" + ] + } + }, + "required": [ + "type", + "host", + "value", + "health" + ] + }, + "verified_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the domain was successfully verified. Present only when `health.code` is `200`." + } + }, + "required": [ + "domain_id", + "domain", + "subscription_id", + "health", + "verification_record" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "examples": { + "domain_response": { + "summary": "Domain collection with pagination", + "description": "Two domains in different states: one verified and in use by a policy (carries `identity_providers` link), one pending verification (carries `verify` link).", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?limit=2&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?limit=2{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?limit=2&offset=0{&filter}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?limit=2&offset=0{&sort}", + "templated": true + }, + "next": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?offset=2&limit=2" + } + }, + "count": 2, + "total": 3, + "pagination": { + "total": 3, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "domain_id": "dom-456", + "domain": "acme.com", + "subscription_id": "sub-123", + "health": { + "code": "200", + "summary": "Verified", + "details": "The DNS TXT record has been confirmed and the domain is verified." + }, + "verification_record": { + "type": "TXT", + "host": "_acquia-challenge.acme.com", + "value": "abc123def456", + "health": { + "code": "200", + "summary": "Verified", + "details": "The TXT record at _acquia-challenge.acme.com matches the expected value." + } + }, + "verified_at": "2026-04-15T10:30:00Z", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sso-domains/dom-456" + }, + "identity_providers": { + "href": "https://cloud.acquia.com/api/identity-providers?filter=domain_id%3Ddom-456" + } + } + }, + { + "domain_id": "dom-789", + "domain": "acme.corp", + "subscription_id": "sub-123", + "health": { + "code": "202", + "summary": "Verification pending", + "details": "Acquia is waiting to confirm the DNS TXT record. Ensure the record has been published and allow time for DNS propagation, then retry verification." + }, + "verification_record": { + "type": "TXT", + "host": "_acquia-challenge.acme.corp", + "value": "xyz789abc123", + "health": { + "code": "202", + "summary": "Check in progress", + "details": "The TXT record check has not yet completed." + } + }, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sso-domains/dom-789" + }, + "verify": { + "href": "https://cloud.acquia.com/api/sso-domains/dom-789/actions/verify" + } + } + } + ] + } + } + } + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Federated_Authentication_API_BearerAuth": [] + } + ] + } + }, + "/sso-domains/{domainId}": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Return details about a specific domain.", + "operationId": "findSsoDomainBySsoDomainId", + "tags": [ + "Federated_Authentication_API_Domains" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "sso-domains:find" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "identity-service" + } + }, + "parameters": [ + { + "name": "domainId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the domain." + } + ], + "responses": { + "200": { + "description": "OK. The `_links` object always contains `self`. Additional links are state-conditional: `verify` is present when `health.code` is `202` or `404` (POST it to initiate or retry DNS TXT record verification); `identity_providers` is present when the domain is referenced by one or more Identity Provider policies (follows to a filtered list of those IdPs; when present the domain cannot be deleted — remove it from all policies first).", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "domain_id": { + "type": "string", + "description": "Unique identifier for the domain." + }, + "domain": { + "type": "string", + "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", + "description": "The domain name (e.g., \"acme.com\")." + }, + "subscription_id": { + "type": "string", + "description": "Unique identifier for the subscription that the domain belongs to." + }, + "health": { + "type": "object", + "description": "The overall verification health of the domain. Uses the same code semantics as the platform email domain-verification system: `200` verified, `202` verification pending or in progress, `404` DNS record not found or could not be validated.", + "properties": { + "code": { + "type": "string", + "enum": [ + "200", + "202", + "404" + ], + "description": "Machine-readable verification status code. `200` — verified. `202` — verification pending or in progress; retry after propagation. `404` — DNS TXT record not found or does not match expected value." + }, + "summary": { + "type": "string", + "description": "Short human-readable label for the verification state (e.g., \"Verified\", \"Verification pending\", \"Missing DNS record\")." + }, + "details": { + "type": "string", + "description": "Actionable explanation of the current state. For `404`, describes what was checked and what the customer should do next." + } + }, + "required": [ + "code", + "summary", + "details" + ] + }, + "verification_record": { + "type": "object", + "description": "DNS TXT record the customer must publish to verify domain ownership.", + "properties": { + "type": { + "type": "string", + "const": "TXT", + "description": "DNS record type." + }, + "host": { + "type": "string", + "description": "DNS record host name." + }, + "value": { + "type": "string", + "description": "Expected DNS record value." + }, + "health": { + "type": "object", + "description": "Verification health specific to this DNS record. Anchors the failure reason to the exact record the customer needs to fix, matching the per-record health pattern used in platform email domain verification.", + "properties": { + "code": { + "type": "string", + "enum": [ + "200", + "202", + "404" + ], + "description": "`200` — record found and value matches. `202` — check in progress. `404` — record not found or value does not match." + }, + "summary": { + "type": "string", + "description": "Short human-readable label for this record's verification state." + }, + "details": { + "type": "string", + "description": "Actionable explanation; for `404`, states what was checked and what to fix." + } + }, + "required": [ + "code", + "summary", + "details" + ] + } + }, + "required": [ + "type", + "host", + "value", + "health" + ] + }, + "verified_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the domain was successfully verified. Present only when `health.code` is `200`." + } + }, + "required": [ + "domain_id", + "domain", + "subscription_id", + "health", + "verification_record" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "examples": { + "pending_verification": { + "summary": "Domain awaiting DNS verification", + "description": "A newly created domain whose DNS TXT record has not yet been confirmed. `health.code` is `202`; the `verify` link is present so the client can trigger or retry the check. `identity_providers` is absent because no policy can reference an unverified domain.", + "value": { + "domain_id": "dom-789", + "domain": "acme.corp", + "subscription_id": "sub-123", + "health": { + "code": "202", + "summary": "Verification pending", + "details": "Acquia is waiting to confirm the DNS TXT record. Ensure the record has been published and allow time for DNS propagation, then retry verification." + }, + "verification_record": { + "type": "TXT", + "host": "_acquia-challenge.acme.corp", + "value": "xyz789abc123", + "health": { + "code": "202", + "summary": "Check in progress", + "details": "The TXT record check has not yet completed." + } + }, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sso-domains/dom-789" + }, + "verify": { + "href": "https://cloud.acquia.com/api/sso-domains/dom-789/actions/verify" + } + } + } + }, + "failed_verification": { + "summary": "Domain verification failed — DNS record not found", + "description": "A domain whose TXT record could not be found. `health.code` is `404`; `details` names the exact record to check. The `verify` link is present so the client can retry after fixing the DNS entry.", + "value": { + "domain_id": "dom-789", + "domain": "acme.corp", + "subscription_id": "sub-123", + "health": { + "code": "404", + "summary": "Missing DNS record", + "details": "Acquia could not verify the presence of the required TXT DNS record at _acquia-challenge.acme.corp. Ensure the record is published with the correct value and retry verification." + }, + "verification_record": { + "type": "TXT", + "host": "_acquia-challenge.acme.corp", + "value": "xyz789abc123", + "health": { + "code": "404", + "summary": "Missing DNS record", + "details": "The TXT record at _acquia-challenge.acme.corp was not found or does not match the expected value xyz789abc123." + } + }, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sso-domains/dom-789" + }, + "verify": { + "href": "https://cloud.acquia.com/api/sso-domains/dom-789/actions/verify" + } + } + } + }, + "verified_in_use": { + "summary": "Verified domain referenced by an Identity Provider policy", + "description": "A verified domain enforced by at least one Identity Provider policy. `health.code` is `200`; `verify` is absent; `identity_providers` is present. A DELETE on this domain will return 409 until the domain is removed from all policies.", + "value": { + "domain_id": "dom-456", + "domain": "acme.com", + "subscription_id": "sub-123", + "health": { + "code": "200", + "summary": "Verified", + "details": "The DNS TXT record has been confirmed and the domain is verified." + }, + "verification_record": { + "type": "TXT", + "host": "_acquia-challenge.acme.com", + "value": "abc123def456", + "health": { + "code": "200", + "summary": "Verified", + "details": "The TXT record at _acquia-challenge.acme.com matches the expected value." + } + }, + "verified_at": "2026-04-15T10:30:00Z", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sso-domains/dom-456" + }, + "identity_providers": { + "href": "https://cloud.acquia.com/api/identity-providers?filter=domain_id%3Ddom-456" + } + } + } + } + } + } + }, + "links": { + "self": { + "operationId": "findSsoDomainBySsoDomainId", + "parameters": { + "domainId": "$response.body#/domain_id" + } + }, + "delete": { + "operationId": "deleteSsoDomainBySsoDomainId", + "parameters": { + "domainId": "$response.body#/domain_id" + } + }, + "verify": { + "operationId": "verifySsoDomainBySsoDomainId", + "parameters": { + "domainId": "$response.body#/domain_id" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Federated_Authentication_API_BearerAuth": [] + } + ] + }, + "delete": { + "summary": "Delete a domain.", + "operationId": "deleteSsoDomainBySsoDomainId", + "tags": [ + "Federated_Authentication_API_Domains" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "sso-domains:delete" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "identity-service" + } + }, + "parameters": [ + { + "name": "domainId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the domain." + } + ], + "responses": { + "202": { + "description": "Domain deletion accepted. The domain is being deleted.", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "const": "Domain deletion has been accepted." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sso-domains/dom-456" + } + }, + "message": "Domain deletion has been accepted." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Federated_Authentication_API_BearerAuth": [] + } + ] + } + }, + "/sso-domains/{domainId}/actions/verify": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "post": { + "summary": "Verify domain ownership via DNS TXT record.", + "operationId": "verifySsoDomainBySsoDomainId", + "tags": [ + "Federated_Authentication_API_Domains" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "sso-domains:verify" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "identity-service" + } + }, + "parameters": [ + { + "name": "domainId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the domain." + } + ], + "responses": { + "202": { + "description": "Domain verification process initiated. The system will validate the DNS TXT record to confirm domain ownership. Poll the domain resource and check `health.code` to track progress: `202` in progress, `200` verified, `404` record not found.", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Domain verification has been accepted.", + "description": "Confirmation message" + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sso-domains/dom-456" + } + }, + "message": "Domain verification has been accepted." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Federated_Authentication_API_BearerAuth": [] + } + ] + } + }, + "/identity-providers": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Return a list of all accessible Identity Providers.", + "operationId": "getIdentityProviders", + "tags": [ + "Federated_Authentication_API_Identity Providers" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "identity-providers:list" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "identity-service" + } + }, + "parameters": [ + { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + }, + { + "name": "sort", + "in": "query", + "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" + }, + "example": "name,-created_at" + }, + { + "name": "filter", + "in": "query", + "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" + }, + "example": "status=active;type=standard" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "identity_provider_id": { + "type": "string", + "description": "Unique identifier for the identity provider." + }, + "label": { + "type": "string", + "description": "The name of the Identity Provider." + }, + "subscription_id": { + "type": "string", + "description": "Unique identifier for the subscription that the Identity Provider belongs to." + }, + "idp_entity_id": { + "type": "string", + "format": "uri", + "description": "The Identity Provider Entity ID." + }, + "sp_entity_id": { + "type": "string", + "format": "uri", + "description": "The Service Provider Entity ID." + }, + "sso_url": { + "type": "string", + "format": "uri", + "description": "The Single Sign-On URL for the Identity Provider." + }, + "certificate": { + "type": "string", + "description": "The X.509 certificate used for SAML authentication." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the Identity Provider was created." + } + }, + "required": [ + "identity_provider_id", + "label", + "subscription_id", + "idp_entity_id", + "sp_entity_id", + "sso_url", + "certificate", + "created_at" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "examples": { + "identity_provider_response": { + "summary": "Identity provider collection with pagination", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2&offset=2" + }, + "limit": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?offset=2{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2&offset=2{&filter}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2&offset=2{&sort}", + "templated": true + }, + "prev": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2&offset=0" + }, + "next": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?offset=4&limit=2" + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "identity_provider_id": "908914ec-2354-4fb1-9298-637247eccc3a", + "label": "Acme Corporation Azure AD", + "subscription_id": "sub-123", + "idp_entity_id": "https://idp.acme.com/saml", + "sp_entity_id": "https://sp.acme.com/saml", + "sso_url": "https://acme.com/sso", + "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", + "created_at": "2026-04-15T11:00:00Z", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a" + }, + "sso_policy": { + "href": "https://cloud.acquia.com/api/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a/policies/sso" + } + } + }, + { + "identity_provider_id": "123456ec-2354-4fb1-9298-637247eccc3b", + "label": "Acme Research Ping Identity", + "subscription_id": "sub-123", + "idp_entity_id": "https://idp-research.acme.com/saml", + "sp_entity_id": "https://sp-research.acme.com/saml", + "sso_url": "https://research.acme.com/sso", + "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", + "created_at": "2026-04-20T14:20:00Z", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/identity-providers/123456ec-2354-4fb1-9298-637247eccc3b" + }, + "sso_policy": { + "href": "https://cloud.acquia.com/api/identity-providers/123456ec-2354-4fb1-9298-637247eccc3b/policies/sso" + } + } + } + ] + } + } + } + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Federated_Authentication_API_BearerAuth": [] + } + ] + } + }, + "/identity-providers/{identityProviderId}": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Return details about a specific Identity Provider.", + "operationId": "findIdentityProviderByIdentityProviderId", + "tags": [ + "Federated_Authentication_API_Identity Providers" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "identity-providers:find" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "identity-service" + } + }, + "parameters": [ + { + "name": "identityProviderId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the identity provider." + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "identity_provider_id": { + "type": "string", + "description": "Unique identifier for the identity provider." + }, + "label": { + "type": "string", + "description": "The name of the Identity Provider." + }, + "subscription_id": { + "type": "string", + "description": "Unique identifier for the subscription that the Identity Provider belongs to." + }, + "idp_entity_id": { + "type": "string", + "format": "uri", + "description": "The Identity Provider Entity ID." + }, + "sp_entity_id": { + "type": "string", + "format": "uri", + "description": "The Service Provider Entity ID." + }, + "sso_url": { + "type": "string", + "format": "uri", + "description": "The Single Sign-On URL for the Identity Provider." + }, + "certificate": { + "type": "string", + "description": "The X.509 certificate used for SAML authentication." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the Identity Provider was created." + } + }, + "required": [ + "identity_provider_id", + "label", + "subscription_id", + "idp_entity_id", + "sp_entity_id", + "sso_url", + "certificate", + "created_at" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "identity_provider_id": "908914ec-2354-4fb1-9298-637247eccc3a", + "label": "Acme Corporation Azure AD", + "subscription_id": "sub-123", + "idp_entity_id": "https://idp.acme.com/saml", + "sp_entity_id": "https://sp.acme.com/saml", + "sso_url": "https://acme.com/sso", + "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", + "created_at": "2026-04-15T11:00:00Z", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a" + }, + "sso_policy": { + "href": "https://cloud.acquia.com/api/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a/policies/sso" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findIdentityProviderByIdentityProviderId", + "parameters": { + "identityProviderId": "$response.body#/identity_provider_id" + } + }, + "update": { + "operationId": "updateIdentityProviderByIdentityProviderId", + "parameters": { + "identityProviderId": "$response.body#/identity_provider_id" + } + }, + "delete": { + "operationId": "deleteIdentityProviderByIdentityProviderId", + "parameters": { + "identityProviderId": "$response.body#/identity_provider_id" + } + }, + "enable_sso_policy": { + "operationId": "enableIdentityProviderSSOPolicyByIdentityProviderId", + "parameters": { + "identityProviderId": "$response.body#/identity_provider_id" + } + }, + "disable_sso_policy": { + "operationId": "disableIdentityProviderSSOPolicyByIdentityProviderId", + "parameters": { + "identityProviderId": "$response.body#/identity_provider_id" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Federated_Authentication_API_BearerAuth": [] + } + ] + }, + "put": { + "summary": "Updates an Identity Provider.", + "operationId": "updateIdentityProviderByIdentityProviderId", + "tags": [ + "Federated_Authentication_API_Identity Providers" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "identity-providers:update" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "identity-service" + } + }, + "parameters": [ + { + "name": "identityProviderId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the identity provider." + } + ], + "requestBody": { + "description": "Request body for updating an existing Identity Provider.", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "The name of the Identity Provider." + }, + "certificate": { + "type": "string", + "description": "The X.509 certificate used for SAML authentication." + }, + "sso_url": { + "type": "string", + "format": "uri", + "description": "The Single Sign-On URL for the Identity Provider." + }, + "idp_entity_id": { + "type": "string", + "format": "uri", + "description": "The Identity Provider Entity ID." + } + }, + "additionalProperties": false, + "minProperties": 1 + }, + "example": { + "label": "Updated Acme Corporation Azure AD", + "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", + "sso_url": "https://updatedacme.com/sso", + "idp_entity_id": "https://idp2.acme.com/saml" + } + } + } + }, + "responses": { + "202": { + "description": "Identity Provider update initiated. The Identity Provider configuration changes are being applied. Poll the Identity Provider resource to verify the changes.", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "const": "Identity Provider update has been accepted." + } + } + } + ] + }, + "example": { + "message": "Identity Provider update has been accepted.", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f" + } + } + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Federated_Authentication_API_BearerAuth": [] + } + ] + }, + "delete": { + "summary": "Deletes an Identity Provider.", + "operationId": "deleteIdentityProviderByIdentityProviderId", + "tags": [ + "Federated_Authentication_API_Identity Providers" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "identity-providers:delete" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "identity-service" + } + }, + "parameters": [ + { + "name": "identityProviderId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the identity provider." + } + ], + "responses": { + "202": { + "description": "Identity Provider deletion accepted. The Identity Provider is being deleted.", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "const": "Identity Provider deletion has been accepted." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f" + } + }, + "message": "Identity Provider deletion has been accepted." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Federated_Authentication_API_BearerAuth": [] + } + ] + } + }, + "/identity-providers/{identityProviderId}/policies/sso": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Get the SSO policy for an Identity Provider.", + "operationId": "findIdentityProviderSSOPolicyByIdentityProviderId", + "tags": [ + "Federated_Authentication_API_Identity Providers" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "identity-providers:find-sso-policy" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "identity-service" + } + }, + "parameters": [ + { + "name": "identityProviderId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the identity provider." + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "description": "SSO policy that enforces an Identity Provider for specific domains.", + "properties": { + "status": { + "type": "string", + "enum": [ + "enabled", + "disabled" + ], + "default": "disabled", + "description": "The status of the SSO policy. When enabled, the policy enforces SSO for the specified domains. Defaults to disabled on creation." + }, + "_embedded": { + "type": "object", + "description": "Embedded resources for the SSO policy.", + "properties": { + "domains": { + "type": "array", + "description": "The SSO domains enforced by this policy, each with a self link back to the authoritative SsoDomain resource.", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "domain_id": { + "type": "string", + "description": "Unique identifier for the domain." + }, + "domain": { + "type": "string", + "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", + "description": "The domain name (e.g., \"acme.com\")." + }, + "subscription_id": { + "type": "string", + "description": "Unique identifier for the subscription that the domain belongs to." + }, + "health": { + "type": "object", + "description": "The overall verification health of the domain. Uses the same code semantics as the platform email domain-verification system: `200` verified, `202` verification pending or in progress, `404` DNS record not found or could not be validated.", + "properties": { + "code": { + "type": "string", + "enum": [ + "200", + "202", + "404" + ], + "description": "Machine-readable verification status code. `200` — verified. `202` — verification pending or in progress; retry after propagation. `404` — DNS TXT record not found or does not match expected value." + }, + "summary": { + "type": "string", + "description": "Short human-readable label for the verification state (e.g., \"Verified\", \"Verification pending\", \"Missing DNS record\")." + }, + "details": { + "type": "string", + "description": "Actionable explanation of the current state. For `404`, describes what was checked and what the customer should do next." + } + }, + "required": [ + "code", + "summary", + "details" + ] + }, + "verification_record": { + "type": "object", + "description": "DNS TXT record the customer must publish to verify domain ownership.", + "properties": { + "type": { + "type": "string", + "const": "TXT", + "description": "DNS record type." + }, + "host": { + "type": "string", + "description": "DNS record host name." + }, + "value": { + "type": "string", + "description": "Expected DNS record value." + }, + "health": { + "type": "object", + "description": "Verification health specific to this DNS record. Anchors the failure reason to the exact record the customer needs to fix, matching the per-record health pattern used in platform email domain verification.", + "properties": { + "code": { + "type": "string", + "enum": [ + "200", + "202", + "404" + ], + "description": "`200` — record found and value matches. `202` — check in progress. `404` — record not found or value does not match." + }, + "summary": { + "type": "string", + "description": "Short human-readable label for this record's verification state." + }, + "details": { + "type": "string", + "description": "Actionable explanation; for `404`, states what was checked and what to fix." + } + }, + "required": [ + "code", + "summary", + "details" + ] + } + }, + "required": [ + "type", + "host", + "value", + "health" + ] + }, + "verified_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the domain was successfully verified. Present only when `health.code` is `200`." + } + }, + "required": [ + "domain_id", + "domain", + "subscription_id", + "health", + "verification_record" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "domains" + ] + } + }, + "required": [ + "status", + "_embedded" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "status": "disabled", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso" + } + }, + "_embedded": { + "domains": [ + { + "domain_id": "dom-456", + "domain": "acme.com", + "subscription_id": "sub-123", + "health": { + "code": "200", + "summary": "Verified", + "details": "The DNS TXT record has been confirmed and the domain is verified." + }, + "verification_record": { + "type": "TXT", + "host": "_acquia-challenge.acme.com", + "value": "abc123def456", + "health": { + "code": "200", + "summary": "Verified", + "details": "The TXT record at _acquia-challenge.acme.com matches the expected value." + } + }, + "verified_at": "2026-04-15T10:30:00Z", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sso-domains/dom-456" + }, + "identity_providers": { + "href": "https://cloud.acquia.com/api/identity-providers?filter=domain_id%3Ddom-456" + } + } + }, + { + "domain_id": "dom-789", + "domain": "acme.corp", + "subscription_id": "sub-123", + "health": { + "code": "200", + "summary": "Verified", + "details": "The DNS TXT record has been confirmed and the domain is verified." + }, + "verification_record": { + "type": "TXT", + "host": "_acquia-challenge.acme.corp", + "value": "xyz789abc123", + "health": { + "code": "200", + "summary": "Verified", + "details": "The TXT record at _acquia-challenge.acme.corp matches the expected value." + } + }, + "verified_at": "2026-04-20T09:00:00Z", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sso-domains/dom-789" + }, + "identity_providers": { + "href": "https://cloud.acquia.com/api/identity-providers?filter=domain_id%3Ddom-789" + } + } + } + ] + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Federated_Authentication_API_BearerAuth": [] + } + ] + }, + "post": { + "summary": "Create the SSO policy for an Identity Provider.", + "operationId": "createIdentityProviderSSOPolicyByIdentityProviderId", + "tags": [ + "Federated_Authentication_API_Identity Providers" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "identity-providers:create-sso-policy" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "identity-service" + } + }, + "parameters": [ + { + "name": "identityProviderId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the identity provider." + } + ], + "requestBody": { + "description": "Request body for creating an SSO policy for an Identity Provider.", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "domain_ids": { + "type": "array", + "description": "List of verified domain IDs to enforce this Identity Provider for.", + "items": { + "type": "string", + "description": "Reference to a verified SSO domain." + } + } + }, + "required": [ + "domain_ids" + ], + "additionalProperties": false + }, + "example": { + "domain_ids": [ + "dom-456", + "dom-789" + ] + } + } + } + }, + "responses": { + "202": { + "description": "SSO policy creation initiated. The policy is being activated. Poll the SSO policy resource to verify activation.", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "const": "SSO policy creation has been accepted." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso" + } + }, + "message": "SSO policy creation has been accepted." + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Federated_Authentication_API_BearerAuth": [] + } + ] + }, + "put": { + "summary": "Update the SSO policy for an Identity Provider.", + "operationId": "updateIdentityProviderSSOPolicyByIdentityProviderId", + "tags": [ + "Federated_Authentication_API_Identity Providers" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "identity-providers:update-sso-policy" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "identity-service" + } + }, + "parameters": [ + { + "name": "identityProviderId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the identity provider." + } + ], + "requestBody": { + "description": "Request body for updating an SSO policy for an Identity Provider.", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "domain_ids": { + "type": "array", + "description": "List of verified domain IDs to enforce this Identity Provider for.", + "items": { + "type": "string", + "description": "Reference to a verified SSO domain." + } + } + }, + "required": [ + "domain_ids" + ], + "additionalProperties": false, + "minProperties": 1 + }, + "example": { + "domain_ids": [ + "dom-456" + ] + } + } + } + }, + "responses": { + "202": { + "description": "SSO policy update initiated. The policy changes are being applied. Poll the SSO policy resource to verify the changes.", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "const": "SSO policy update has been accepted." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso" + } + }, + "message": "SSO policy update has been accepted." + } + } + } + }, + "400": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Federated_Authentication_API_BearerAuth": [] + } + ] + }, + "delete": { + "summary": "Delete the SSO policy for an Identity Provider.", + "operationId": "deleteIdentityProviderSSOPolicyByIdentityProviderId", + "tags": [ + "Federated_Authentication_API_Identity Providers" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "identity-providers:delete-sso-policy" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "identity-service" + } + }, + "parameters": [ + { + "name": "identityProviderId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the identity provider." + } + ], + "responses": { + "202": { + "description": "SSO policy deletion initiated. The policy is being deactivated. Poll the Identity Provider resource to verify the policy has been removed.", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "const": "SSO policy deletion has been accepted." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso" + } + }, + "message": "SSO policy deletion has been accepted." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Federated_Authentication_API_BearerAuth": [] + } + ] + } + }, + "/identity-providers/{identityProviderId}/policies/sso/actions/enable": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "post": { + "summary": "Enable the SSO policy for an Identity Provider.", + "operationId": "enableIdentityProviderSSOPolicyByIdentityProviderId", + "tags": [ + "Federated_Authentication_API_Identity Providers" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "identity-providers:enable-sso-policy" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "identity-service" + } + }, + "parameters": [ + { + "name": "identityProviderId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the identity provider." + } + ], + "responses": { + "202": { + "description": "SSO policy enablement initiated. The policy is being enabled and will enforce domains. Poll the SSO policy resource to verify the status change.", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "const": "SSO policy enablement has been accepted." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso" + } + }, + "message": "SSO policy enablement has been accepted." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Federated_Authentication_API_BearerAuth": [] + } + ] + } + }, + "/identity-providers/{identityProviderId}/policies/sso/actions/disable": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "post": { + "summary": "Disable the SSO policy for an Identity Provider.", + "operationId": "disableIdentityProviderSSOPolicyByIdentityProviderId", + "tags": [ + "Federated_Authentication_API_Identity Providers" + ], + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "identity-providers:disable-sso-policy" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "identity-service" + } + }, + "parameters": [ + { + "name": "identityProviderId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the identity provider." + } + ], + "responses": { + "202": { + "description": "SSO policy disablement initiated. The policy is being disabled and will no longer enforce domains. Poll the SSO policy resource to verify the status change.", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "const": "SSO policy disablement has been accepted." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso" + } + }, + "message": "SSO policy disablement has been accepted." + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "Federated_Authentication_API_BearerAuth": [] + } + ] + } + }, + "/ssh-keys": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Gets a list of SSH keys.", + "description": "Gets a list of all SSH keys accessible to the requester. Each key includes\na `user_id` field identifying the owner.\n\nTo look up the owner of an SSH key by fingerprint or public key, apply a\nmandatory filter: `GET /ssh-keys?filter=fingerprint%3D` or\n`GET /ssh-keys?filter=public_key%3D`. The matching key(s) will\ninclude the `user_id` of the owner.\n\nFilterable fields:\n* `label`\n* `fingerprint`\n* `public_key`\n* `user_id`\n\nSortable fields:\n* `label`\n", + "operationId": "getSshKeys", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "ssh-keys:list" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "ssh-key-service" + } + }, + "tags": [ + "SSH_Key_Service_API_SSH Keys" + ], + "parameters": [ + { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + }, + { + "name": "filter", + "in": "query", + "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals (default if no operator specified)\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `label=primary` - Filter by label equals primary\n- `fingerprint=@SHA256` - Filter by fingerprint containing \"SHA256\"\n- `label=primary;fingerprint=@SHA256` - label is primary AND fingerprint contains SHA256\n- `label=primary,label=backup` - label is primary OR backup\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" + }, + "example": "label=primary;fingerprint=@SHA256" + }, + { + "name": "sort", + "in": "query", + "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" + }, + "example": "name,-created_at" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + }, + { + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + }, + { + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + }, + { + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering." + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + } + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + }, + { + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting." + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + } + } + } + ] + }, + { + "type": "object", + "description": "A collection of SSH keys.", + "properties": { + "_embedded": { + "type": "object", + "description": "A collection of SSH keys matching the request parameters.", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "required": [ + "id", + "label", + "public_key", + "fingerprint", + "created_at", + "user_id" + ], + "description": "Details an SSH key.", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the SSH key.", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "label": { + "type": "string", + "description": "The human-readable key label." + }, + "public_key": { + "type": "string", + "description": "The public key.", + "minLength": 64 + }, + "fingerprint": { + "type": "string", + "description": "The public key fingerprint.", + "pattern": "^[A-Za-z0-9:+/=.-]+$" + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "The key creation date." + }, + "user_id": { + "type": "string", + "description": "The unique identifier of the user who owns this SSH key.", + "pattern": "^[a-zA-Z0-9-]+$" + } + } + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "examples": { + "ssh_keys": { + "summary": "SSH key collection", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/ssh-keys?limit=2&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/ssh-keys?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/ssh-keys?limit=2{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/ssh-keys?limit=2&offset=0{&filter}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api/ssh-keys?limit=2&offset=0{&sort}", + "templated": true + }, + "next": { + "href": "https://cloud.acquia.com/api/ssh-keys?limit=2&offset=2" + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "1acbb1a5-e864-4b8e-a3f9-b1ed462afd25", + "label": "primary", + "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQChwPHzTTDKDpSbpa2+d22LcbQmsw92eLsUK3Fmei1fiGDkd34NsYCN8m7lsi3NbvdMS83CtPQPWiCveYPzFs1/hHc4PYj8opD2CNnr5iWVVbyaulCYHCgVv4aB/ojcexg8q483A4xJeF15TiCr/gu34rK6ucTvC/tn/rCwJBudczvEwt0klqYwv8Cl/ytaQboSuem5KgSjO3lMrb6CWtfSNhE43ZOw+UBFBqxIninN868vGMkIv9VY34Pwj54rPn/ItQd6Ef4B0KHHaGmzK0vfP+AK7FxNMoHnj3iYT33KZNqtDozdn5tYyH/bThPebEtgqUn+/w5l6wZIC/8zzvls/127ngHk+jNa0PlNyS2TxhPUK4NaPHIEnnrlp07JEYC4ImcBjaYCWAdcTcUkcJjwZQkN4bGmyO9cjICH98SdLD/HxqzTHeaYDbAX/Hu9HfaBb5dXLWsjw3Xc6hoVnUUZbMQyfgb0KgxDLh92eNGxJkpZiL0VDNOWCxDWsNpzwhLNkLqCvI6lyxiLaUzvJAk6dPaRhExmCbU1lDO2eR0FdSwC1TEhJOT9eDIK1r2hztZKs2oa5FNFfB/IFHVWasVFC9N2h/r/egB5zsRxC9MqBLRBq95NBxaRSFng6ML5WZSw41Qi4C/JWVm89rdj2WqScDHYyAdwyyppWU4T5c9Fmw== example@example.com", + "fingerprint": "SHA256:7a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8g9h0i1j2k3l4m5n6o7p8q9r0s1", + "created_at": "2024-10-01T12:30:00Z", + "user_id": "a47ac10b-58cc-4372-a567-0e02b2c3d479", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/ssh-keys/1acbb1a5-e864-4b8e-a3f9-b1ed462afd25" + } + } + }, + { + "id": "2bcbb1a5-e864-4b8e-a3f9-b1ed462afd26", + "label": "backup", + "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFf2T1I1d8T1B9Q1b8pS6m2xvY3i5q8sNnU5oQwY5vS9 example@example.com", + "fingerprint": "SHA256:9b8c7d6e5f4a3b2c1d0e9f8a7b6c5d4e3f2a1b0c9d8e7f6a5b4c3d2e1f0a9b8", + "created_at": "2024-10-02T09:15:00Z", + "user_id": "b58bd21c-69dd-5483-b678-1f13c3d4e580", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/ssh-keys/2bcbb1a5-e864-4b8e-a3f9-b1ed462afd26" + } + } + } + ] + } + } + } + } + } + } + }, + "400": { + "description": "Bad Request - Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "error", + "message" + ], + "description": "A validation error.", + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "object", + "description": "The validation error message keyed by its field or group name.", + "additionalProperties": { + "type": "string" + } + } + } + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "error", + "message" + ], + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "string", + "description": "The long description for the returned error." + } + } + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "error", + "message" + ], + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "string", + "description": "The long description for the returned error." + } + } + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "error", + "message" + ], + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "string", + "description": "The long description for the returned error." + } + } + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "SSH_Key_Service_API_BearerAuth": [] + } + ] + }, + "post": { + "summary": "Installs a new SSH key for the current user.", + "description": "Installs a new SSH key for the current user.", + "operationId": "createSshKey", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "ssh-keys:create" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "ssh-key-service" + } + }, + "tags": [ + "SSH_Key_Service_API_SSH Keys" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "label", + "public_key" + ], + "description": "Describes the request body for an SSH key.", + "properties": { + "label": { + "type": "string", + "description": "The SSH key label." + }, + "public_key": { + "type": "string", + "description": "The public key." + } + }, + "additionalProperties": false, + "minProperties": 1 + }, + "example": { + "label": "mykey", + "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQChwPHzTTDKDpSbpa2+d22LcbQmsw92eLsUK3Fmei1fiGDkd34NsYCN8m7lsi3NbvdMS83CtPQPWiCveYPzFs1/hHc4PYj8opD2CNnr5iWVVbyaulCYHCgVv4aB/ojcexg8q483A4xJeF15TiCr/gu34rK6ucTvC/tn/rCwJBudczvEwt0klqYwv8Cl/ytaQboSuem5KgSjO3lMrb6CWtfSNhE43ZOw+UBFBqxIninN868vGMkIv9VY34Pwj54rPn/ItQd6Ef4B0KHHaGmzK0vfP+AK7FxNMoHnj3iYT33KZNqtDozdn5tYyH/bThPebEtgqUn+/w5l6wZIC/8zzvls/127ngHk+jNa0PlNyS2TxhPUK4NaPHIEnnrlp07JEYC4ImcBjaYCWAdcTcUkcJjwZQkN4bGmyO9cjICH98SdLD/HxqzTHeaYDbAX/Hu9HfaBb5dXLWsjw3Xc6hoVnUUZbMQyfgb0KgxDLh92eNGxJkpZiL0VDNOWCxDWsNpzwhLNkLqCvI6lyxiLaUzvJAk6dPaRhExmCbU1lDO2eR0FdSwC1TEhJOT9eDIK1r2hztZKs2oa5FNFfB/IFHVWasVFC9N2h/r/egB5zsRxC9MqBLRBq95NBxaRSFng6ML5WZSw41Qi4C/JWVm89rdj2WqScDHYyAdwyyppWU4T5c9Fmw== example@example.com" + } + } + } + }, + "responses": { + "202": { + "description": "Accepted", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "required": [ + "message" + ], + "properties": { + "message": { + "type": "string", + "description": "The human-friendly confirmation of the operation." + } + } + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Added SSH key.", + "description": "Confirmation message." + } + } + } + ] + }, + "example": { + "message": "Added SSH key.", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/ssh-keys/981b7910-2fe9-11e9-b210-d663bd873d93" + } + } + } + } + } + }, + "400": { + "description": "Bad Request - Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "error", + "message" + ], + "description": "A validation error.", + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "object", + "description": "The validation error message keyed by its field or group name.", + "additionalProperties": { + "type": "string" + } + } + } + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required." + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "error", + "message" + ], + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "string", + "description": "The long description for the returned error." + } + } + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "error", + "message" + ], + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "string", + "description": "The long description for the returned error." + } + } + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "error", + "message" + ], + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "string", + "description": "The long description for the returned error." + } + } + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "error", + "message" + ], + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "string", + "description": "The long description for the returned error." + } + } + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "SSH_Key_Service_API_BearerAuth": [] + } + ] + } + }, + "/ssh-keys/{sshKeyId}": { + "servers": [ + { + "url": "https://cloud.acquia.com/api" + } + ], + "get": { + "summary": "Gets an SSH key.", + "description": "Gets an SSH key by SSH Key ID.", + "operationId": "findSshKeyBySshKeyId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "ssh-keys:find" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "ssh-key-service" + } + }, + "tags": [ + "SSH_Key_Service_API_SSH Keys" + ], + "parameters": [ + { + "name": "sshKeyId", + "in": "path", + "description": "The SSH key's unique identifier.", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "example": "981b7910-2fe9-11e9-b210-d663bd873d93" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "id", + "label", + "public_key", + "fingerprint", + "created_at", + "user_id" + ], + "description": "Details an SSH key.", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the SSH key.", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "label": { + "type": "string", + "description": "The human-readable key label." + }, + "public_key": { + "type": "string", + "description": "The public key.", + "minLength": 64 + }, + "fingerprint": { + "type": "string", + "description": "The public key fingerprint.", + "pattern": "^[A-Za-z0-9:+/=.-]+$" + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "The key creation date." + }, + "user_id": { + "type": "string", + "description": "The unique identifier of the user who owns this SSH key.", + "pattern": "^[a-zA-Z0-9-]+$" + } + } + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "id": "1acbb1a5-e864-4b8e-a3f9-b1ed462afd25", + "label": "primary", + "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQChwPHzTTDKDpSbpa2+d22LcbQmsw92eLsUK3Fmei1fiGDkd34NsYCN8m7lsi3NbvdMS83CtPQPWiCveYPzFs1/hHc4PYj8opD2CNnr5iWVVbyaulCYHCgVv4aB/ojcexg8q483A4xJeF15TiCr/gu34rK6ucTvC/tn/rCwJBudczvEwt0klqYwv8Cl/ytaQboSuem5KgSjO3lMrb6CWtfSNhE43ZOw+UBFBqxIninN868vGMkIv9VY34Pwj54rPn/ItQd6Ef4B0KHHaGmzK0vfP+AK7FxNMoHnj3iYT33KZNqtDozdn5tYyH/bThPebEtgqUn+/w5l6wZIC/8zzvls/127ngHk+jNa0PlNyS2TxhPUK4NaPHIEnnrlp07JEYC4ImcBjaYCWAdcTcUkcJjwZQkN4bGmyO9cjICH98SdLD/HxqzTHeaYDbAX/Hu9HfaBb5dXLWsjw3Xc6hoVnUUZbMQyfgb0KgxDLh92eNGxJkpZiL0VDNOWCxDWsNpzwhLNkLqCvI6lyxiLaUzvJAk6dPaRhExmCbU1lDO2eR0FdSwC1TEhJOT9eDIK1r2hztZKs2oa5FNFfB/IFHVWasVFC9N2h/r/egB5zsRxC9MqBLRBq95NBxaRSFng6ML5WZSw41Qi4C/JWVm89rdj2WqScDHYyAdwyyppWU4T5c9Fmw== example@example.com", + "fingerprint": "SHA256:7a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8g9h0i1j2k3l4m5n6o7p8q9r0s1", + "created_at": "2024-10-01T12:30:00Z", + "user_id": "a47ac10b-58cc-4372-a567-0e02b2c3d479", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/ssh-keys/1acbb1a5-e864-4b8e-a3f9-b1ed462afd25" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findSshKeyBySshKeyId", + "parameters": { + "sshKeyId": "$request.path.sshKeyId" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "error", + "message" + ], + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "string", + "description": "The long description for the returned error." + } + } + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "error", + "message" + ], + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "string", + "description": "The long description for the returned error." + } + } + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "error", + "message" + ], + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "string", + "description": "The long description for the returned error." + } + } + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "error", + "message" + ], + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "string", + "description": "The long description for the returned error." + } + } + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "SSH_Key_Service_API_BearerAuth": [] + } + ] + }, + "delete": { + "summary": "Deletes an SSH key.", + "description": "Deletes an SSH key by SSH Key ID.", + "operationId": "deleteSshKeyBySshKeyId", + "x-acquia-exposure": { + "channels": { + "rest": { + "enabled": true + }, + "cli": { + "enabled": true, + "command": "ssh-keys:delete" + } + }, + "stability": "development", + "audience": [ + "public" + ] + }, + "x-acquia-operation": { + "provider": { + "service": "ssh-key-service" + } + }, + "tags": [ + "SSH_Key_Service_API_SSH Keys" + ], + "parameters": [ + { + "name": "sshKeyId", + "in": "path", + "description": "The SSH key's unique identifier.", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "example": "981b7910-2fe9-11e9-b210-d663bd873d93" + } + ], + "responses": { + "202": { + "description": "Accepted", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "required": [ + "message" + ], + "properties": { + "message": { + "type": "string", + "description": "The human-friendly confirmation of the operation." + } + } + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Removed SSH key.", + "description": "Confirmation message." + } + } + } + ] + }, + "example": { + "message": "Removed SSH key.", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/ssh-keys/1acbb1a5-e864-4b8e-a3f9-b1ed462afd25" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "error", + "message" + ], + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "string", + "description": "The long description for the returned error." + } + } + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "error", + "message" + ], + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "string", + "description": "The long description for the returned error." + } + } + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "error", + "message" + ], + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "string", + "description": "The long description for the returned error." + } + } + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "error", + "message" + ], + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "string", + "description": "The long description for the returned error." + } + } + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "error", + "message" + ], + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "string", + "description": "The long description for the returned error." + } + } + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "security": [ + { + "SSH_Key_Service_API_BearerAuth": [] + } + ] + } + } + }, + "components": { + "parameters": { + "Failover_Service_API_environmentId": { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + }, + "Failover_Service_API_failoverGroupId": { + "name": "failoverGroupId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the failover group." + }, + "Failover_Service_API_Offset": { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + "Failover_Service_API_Limit": { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + }, + "Failover_Service_API_Filter": { + "name": "filter", + "in": "query", + "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" + }, + "example": "status=active;type=standard" + }, + "Failover_Service_API_FailoverGroupId": { + "name": "failoverGroupId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the failover group." + }, + "Failover_Service_API_EnvironmentId": { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + }, + "Codebase_Service_API_codebaseId": { + "name": "codebaseId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the codebase." + }, + "Codebase_Service_API_patternId": { + "name": "patternId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the domain pattern." + }, + "Codebase_Service_API_referenceName": { + "name": "referenceName", + "in": "path", + "required": true, + "description": "Name of the git reference (branch or tag). Slashes must be URL-encoded as `%2F` in the path (e.g., `feature%2Fbranch-name`).", + "schema": { + "type": "string", + "pattern": "^[^/]+$" + } + }, + "Codebase_Service_API_subscriptionId": { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the subscription" + }, + "Codebase_Service_API_Offset": { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + "Codebase_Service_API_Limit": { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + }, + "Codebase_Service_API_Filter": { + "name": "filter", + "in": "query", + "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" + }, + "example": "status=active;type=standard" + }, + "Codebase_Service_API_CodebaseId": { + "name": "codebaseId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the codebase." + }, + "Codebase_Service_API_ReferenceName": { + "name": "referenceName", + "in": "path", + "required": true, + "description": "Name of the git reference (branch or tag). Slashes must be URL-encoded as `%2F` in the path (e.g., `feature%2Fbranch-name`).", + "schema": { + "type": "string", + "pattern": "^[^/]+$" + } + }, + "Codebase_Service_API_Sort": { + "name": "sort", + "in": "query", + "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" + }, + "example": "name,-created_at" + }, + "Codebase_Service_API_PatternId": { + "name": "patternId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the domain pattern." + }, + "Codebase_Service_API_SubscriptionId": { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the subscription" + }, + "Tag_API_tagName": { + "name": "tagName", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the tag." + }, + "Tag_API_Offset": { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + "Tag_API_Limit": { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + }, + "Tag_API_Filter": { + "name": "filter", + "in": "query", + "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" + }, + "example": "status=active;type=standard" + }, + "Tag_API_Sort": { + "name": "sort", + "in": "query", + "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" + }, + "example": "name,-created_at" + }, + "Tag_API_TagName": { + "name": "tagName", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the tag." + }, + "Site_Service_API_siteId": { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "12345678-1234-1234-1234-123456789012" + }, + "description": "Unique identifier for the site" + }, + "Site_Service_API_codebaseId": { + "name": "codebaseId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "550e8400-e29b-41d4-a716-446655441212" + }, + "description": "Unique identifier for the codebase" + }, + "Site_Service_API_subscriptionId": { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "550e8300-e29b-41d4-a716-446655441212" + }, + "description": "Unique identifier for the subscription" + }, + "Site_Service_API_environmentId": { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "0ebce493-9d09-479d-a9a8-138a206fa687" + }, + "description": "Unique identifier for the environment" + }, + "Site_Service_API_Offset": { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + "Site_Service_API_Limit": { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + }, + "Site_Service_API_Filter": { + "name": "filter", + "in": "query", + "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" + }, + "example": "status=active;type=standard" + }, + "Site_Service_API_Sort": { + "name": "sort", + "in": "query", + "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" + }, + "example": "name,-created_at" + }, + "Site_Service_API_SiteId": { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "12345678-1234-1234-1234-123456789012" + }, + "description": "Unique identifier for the site" + }, + "Site_Service_API_CodebaseId": { + "name": "codebaseId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "550e8400-e29b-41d4-a716-446655441212" + }, + "description": "Unique identifier for the codebase" + }, + "Site_Service_API_SubscriptionId": { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "550e8300-e29b-41d4-a716-446655441212" + }, + "description": "Unique identifier for the subscription" + }, + "Site_Service_API_EnvironmentId": { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "0ebce493-9d09-479d-a9a8-138a206fa687" + }, + "description": "Unique identifier for the environment" + }, + "CDN_API_SubscriptionUuid": { + "name": "subscriptionUuid", + "in": "path", + "required": true, + "description": "The unique identifier of the subscription.", + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + } + }, + "CDN_API_DomainName": { + "name": "domainName", + "in": "path", + "required": true, + "description": "The fully qualified domain name.", + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?(\\.[a-zA-Z]{2,})+$" + } + }, + "CDN_API_EnvironmentId": { + "name": "environmentId", + "in": "path", + "required": true, + "description": "The unique identifier of the environment.", + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + } + }, + "CDN_API_Offset": { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + "CDN_API_Limit": { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + }, + "CDN_API_Filter": { + "name": "filter", + "in": "query", + "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" + }, + "example": "status=active;type=standard" + }, + "CDN_API_Sort": { + "name": "sort", + "in": "query", + "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" + }, + "example": "name,-created_at" + }, + "Environment_Service_API_environmentId": { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + }, + "Environment_Service_API_siteId": { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the site." + }, + "Environment_Service_API_deploymentId": { + "name": "deploymentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the deployment." + }, + "Environment_Service_API_codebaseId": { + "name": "codebaseId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Codebase identifier" + }, + "Environment_Service_API_domainName": { + "name": "domainName", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*$" + }, + "description": "The fully-qualified domain name (e.g., www.example.com)." + }, + "Environment_Service_API_backupId": { + "name": "backupId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Database backup identifier" + }, + "Environment_Service_API_privateNetworkId": { + "name": "privateNetworkId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Private network identifier" + }, + "Environment_Service_API_patternId": { + "name": "patternId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the domain pattern." + }, + "Environment_Service_API_CodebaseId": { + "name": "codebaseId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Codebase identifier" + }, + "Environment_Service_API_Offset": { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + "Environment_Service_API_Limit": { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + }, + "Environment_Service_API_Filter": { + "name": "filter", + "in": "query", + "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" + }, + "example": "status=active;type=standard" + }, + "Environment_Service_API_EnvironmentId": { + "name": "environmentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the environment." + }, + "Environment_Service_API_SiteId": { + "name": "siteId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the site." + }, + "Environment_Service_API_PrivateNetworkId": { + "name": "privateNetworkId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Private network identifier" + }, + "Environment_Service_API_Sort": { + "name": "sort", + "in": "query", + "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" + }, + "example": "name,-created_at" + }, + "Environment_Service_API_DomainName": { + "name": "domainName", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*$" + }, + "description": "The fully-qualified domain name (e.g., www.example.com)." + }, + "Environment_Service_API_BackupId": { + "name": "backupId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Database backup identifier" + }, + "Environment_Service_API_DeploymentId": { + "name": "deploymentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the deployment." + }, + "Environment_Service_API_PatternId": { + "name": "patternId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the domain pattern." + }, + "Federated_Authentication_API_SubscriptionId": { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the subscription." + }, + "Federated_Authentication_API_SsoDomainId": { + "name": "domainId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the domain." + }, + "Federated_Authentication_API_IdentityProviderId": { + "name": "identityProviderId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "description": "Unique identifier for the identity provider." + }, + "Federated_Authentication_API_Offset": { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + "Federated_Authentication_API_Limit": { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + }, + "Federated_Authentication_API_Sort": { + "name": "sort", + "in": "query", + "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" + }, + "example": "name,-created_at" + }, + "Federated_Authentication_API_Filter": { + "name": "filter", + "in": "query", + "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" + }, + "example": "status=active;type=standard" + }, + "SSH_Key_Service_API_SshKeyId": { + "name": "sshKeyId", + "in": "path", + "description": "The SSH key's unique identifier.", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "example": "981b7910-2fe9-11e9-b210-d663bd873d93" + }, + "SSH_Key_Service_API_Offset": { + "name": "offset", + "in": "query", + "description": "The number of items to skip before starting to collect the result set.", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "example": 20 + } + }, + "SSH_Key_Service_API_Limit": { + "name": "limit", + "in": "query", + "description": "The maximum number of items to return per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "example": 10 + } + }, + "SSH_Key_Service_API_Filter": { + "name": "filter", + "in": "query", + "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals (default if no operator specified)\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `label=primary` - Filter by label equals primary\n- `fingerprint=@SHA256` - Filter by fingerprint containing \"SHA256\"\n- `label=primary;fingerprint=@SHA256` - label is primary AND fingerprint contains SHA256\n- `label=primary,label=backup` - label is primary OR backup\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" + }, + "example": "label=primary;fingerprint=@SHA256" + }, + "SSH_Key_Service_API_Sort": { + "name": "sort", + "in": "query", + "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", + "required": false, + "schema": { + "type": "string", + "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" + }, + "example": "name,-created_at" + } + }, + "responses": { + "Failover_Service_API_ForbiddenError": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "Failover_Service_API_InternalServerError": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + }, + "Failover_Service_API_NotFoundError": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "Failover_Service_API_UnauthorizedError": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "Failover_Service_API_InvalidOperationError": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "Failover_Service_API_FailoverGroupCollection": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the failover group.", + "example": "b2c3d4e5-f6a7-8901-bcde-f12345678901" + }, + "name": { + "type": "string", + "description": "The name of the failover group.", + "example": "Primary Failover Group" + }, + "status": { + "type": "string", + "enum": [ + "creating", + "normal", + "failed-over", + "failing-over", + "error", + "deleting", + "deleted" + ], + "description": "The current status of the failover group.", + "example": "normal" + }, + "pairs": { + "type": "array", + "description": "The list of failover pairs belonging to this failover group.", + "items": { + "type": "object", + "properties": { + "service_name": { + "type": "string", + "description": "The name of the service for this failover pair.", + "example": "my-application-service" + }, + "primary_id": { + "type": "string", + "description": "The ID of the primary resource in the failover pair.", + "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + }, + "failover_id": { + "type": "string", + "description": "The UUID of the failover resource in the failover pair.", + "example": "f1e2d3c4-b5a6-7890-fedc-ba9876543210" + } + }, + "required": [ + "service_name", + "primary_id", + "failover_id" + ] + } + } + }, + "required": [ + "id", + "name", + "status", + "pairs" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "examples": { + "failover_group_collection": { + "summary": "Failover group collection with pagination", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/failover-groups?limit=2&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/failover-groups?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/failover-groups?limit=2{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/failover-groups?limit=2&offset=0{&filter}", + "templated": true + } + }, + "count": 1, + "total": 1, + "pagination": { + "total": 1, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", + "name": "Primary Failover Group", + "status": "normal", + "pairs": [ + { + "service_name": "my-application-service", + "primary_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "failover_id": "f1e2d3c4-b5a6-7890-fedc-ba9876543210" + } + ], + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901" + } + } + } + ] + } + } + } + } + } + } + }, + "Failover_Service_API_FailoverGroup": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the failover group.", + "example": "b2c3d4e5-f6a7-8901-bcde-f12345678901" + }, + "name": { + "type": "string", + "description": "The name of the failover group.", + "example": "Primary Failover Group" + }, + "status": { + "type": "string", + "enum": [ + "creating", + "normal", + "failed-over", + "failing-over", + "error", + "deleting", + "deleted" + ], + "description": "The current status of the failover group.", + "example": "normal" + }, + "pairs": { + "type": "array", + "description": "The list of failover pairs belonging to this failover group.", + "items": { + "type": "object", + "properties": { + "service_name": { + "type": "string", + "description": "The name of the service for this failover pair.", + "example": "my-application-service" + }, + "primary_id": { + "type": "string", + "description": "The ID of the primary resource in the failover pair.", + "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + }, + "failover_id": { + "type": "string", + "description": "The UUID of the failover resource in the failover pair.", + "example": "f1e2d3c4-b5a6-7890-fedc-ba9876543210" + } + }, + "required": [ + "service_name", + "primary_id", + "failover_id" + ] + } + } + }, + "required": [ + "id", + "name", + "status", + "pairs" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", + "name": "Primary Failover Group", + "status": "normal", + "pairs": [ + { + "service_name": "my-application-service", + "primary_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "failover_id": "f1e2d3c4-b5a6-7890-fedc-ba9876543210" + } + ], + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findFailoverGroupByFailoverGroupId", + "parameters": { + "failoverGroupId": "$request.path.failoverGroupId" + } + } + } + }, + "Failover_Service_API_MultiRegionFailoverStatus": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "is_enabled": { + "type": "boolean", + "description": "Whether multi-region failover is enabled for the environment." + }, + "failover_group_id": { + "type": "string", + "description": "The identifier of the failover group associated with the environment." + }, + "is_traffic_failed_over": { + "type": "boolean", + "description": "Whether traffic has been failed over to the secondary region." + } + }, + "required": [ + "is_enabled" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "is_enabled": true, + "failover_group_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", + "is_traffic_failed_over": false, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/a1b2c3d4-e5f6-7890-abcd-ef1234567890/multi-region-failover" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findMultiRegionFailoverByEnvironmentId", + "parameters": { + "environmentId": "$request.path.environmentId" + } + } + } + }, + "Failover_Service_API_CreateFailoverGroupResponse": { + "description": "Failover group creation initiated", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Failover group creation has been initiated.", + "description": "Confirmation message that the failover group creation has been initiated." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901" + } + }, + "message": "Failover group creation has been initiated." + } + } + } + }, + "Failover_Service_API_DeleteFailoverGroupResponse": { + "description": "Failover group deletion initiated", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Failover group deletion has been initiated.", + "description": "Confirmation message that the failover group deletion has been initiated." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901" + } + }, + "message": "Failover group deletion has been initiated." + } + } + } + }, + "Failover_Service_API_FailoverGroupFailoverResponse": { + "description": "Failover group failover initiated", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Failover group failover initiated.", + "description": "Confirmation message that the failover group failover has been initiated." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901" + } + }, + "message": "Failover group failover initiated." + } + } + } + }, + "Failover_Service_API_FailoverGroupRevertFailoverResponse": { + "description": "Failover group revert failover initiated", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Failover group revert failover initiated.", + "description": "Confirmation message that the failover group revert failover has been initiated." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901" + } + }, + "message": "Failover group revert failover initiated." + } + } + } + }, + "Failover_Service_API_FailoverGroupSyncResponse": { + "description": "Failover group sync initiated", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Failover group sync initiated.", + "description": "Confirmation message that the failover group sync has been initiated." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901" + } + }, + "message": "Failover group sync initiated." + } + } + } + }, + "Failover_Service_API_SaveMultiRegionFailoverResponse": { + "description": "Multi-region failover enable initiated", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Multi-region failover enable has been initiated.", + "description": "Confirmation message that multi-region failover enable has been initiated." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/a1b2c3d4-e5f6-7890-abcd-ef1234567890/multi-region-failover" + } + }, + "message": "Multi-region failover enable has been initiated." + } + } + } + }, + "Failover_Service_API_DeleteMultiRegionFailoverResponse": { + "description": "Multi-region failover disable initiated", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "Multi-region failover disable has been initiated.", + "description": "Confirmation message that multi-region failover disable has been initiated." + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/a1b2c3d4-e5f6-7890-abcd-ef1234567890/multi-region-failover" + } + }, + "message": "Multi-region failover disable has been initiated." + } + } + } + }, + "Failover_Service_API_ValidationError": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "Codebase_Service_API_Codebase": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the codebase" + }, + "label": { + "type": "string", + "description": "Human-readable label for the codebase" + }, + "region": { + "type": "string", + "description": "AWS region of the codebase" + }, + "vcs_url": { + "type": "string", + "format": "uri", + "description": "VCS repository URL" + }, + "repository_id": { + "type": "string", + "description": "VCS repository identifier" + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Creation timestamp" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "Last update timestamp" + }, + "description": { + "type": "string", + "description": "Description of the codebase" + }, + "flags": { + "type": "object", + "properties": { + "is_active": { + "type": "boolean", + "description": "Whether the codebase is active" + }, + "is_meo": { + "type": "boolean", + "description": "Whether the codebase is MEO" + } + }, + "required": [ + "is_active", + "is_meo" + ], + "description": "Feature flags for the codebase" + }, + "hash": { + "type": "string", + "description": "Codebase hash" + }, + "applications_total": { + "type": "integer", + "description": "Total number of applications linked to this codebase" + } + }, + "required": [ + "id", + "label", + "region", + "vcs_url", + "repository_id", + "created_at", + "updated_at", + "flags", + "hash", + "applications_total" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", + "label": "my-codebase", + "region": "us-east-1", + "vcs_url": "https://github.com/acquia/my-codebase.git", + "repository_id": "12345678", + "created_at": "2024-01-15T10:30:00Z", + "updated_at": "2024-01-15T10:30:00Z", + "description": "Main production codebase", + "flags": { + "is_active": true, + "is_meo": false + }, + "hash": "abc123def456", + "applications_total": 3, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4" + } + } + } + } + } + }, + "Codebase_Service_API_CodebaseCollection": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the codebase" + }, + "label": { + "type": "string", + "description": "Human-readable label for the codebase" + }, + "region": { + "type": "string", + "description": "AWS region of the codebase" + }, + "vcs_url": { + "type": "string", + "format": "uri", + "description": "VCS repository URL" + }, + "repository_id": { + "type": "string", + "description": "VCS repository identifier" + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Creation timestamp" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "Last update timestamp" + }, + "description": { + "type": "string", + "description": "Description of the codebase" + }, + "flags": { + "type": "object", + "properties": { + "is_active": { + "type": "boolean", + "description": "Whether the codebase is active" + }, + "is_meo": { + "type": "boolean", + "description": "Whether the codebase is MEO" + } + }, + "required": [ + "is_active", + "is_meo" + ], + "description": "Feature flags for the codebase" + }, + "hash": { + "type": "string", + "description": "Codebase hash" + }, + "applications_total": { + "type": "integer", + "description": "Total number of applications linked to this codebase" + } + }, + "required": [ + "id", + "label", + "region", + "vcs_url", + "repository_id", + "created_at", + "updated_at", + "flags", + "hash", + "applications_total" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "examples": { + "codebase_collection": { + "summary": "Codebase collection with pagination", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases?limit=10&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/codebases?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/codebases?limit=10{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/codebases?limit=10&offset=0{&filter}", + "templated": true + } + }, + "count": 1, + "total": 1, + "pagination": { + "total": 1, + "limit": 10, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", + "label": "my-codebase", + "region": "us-east-1", + "vcs_url": "https://github.com/acquia/my-codebase.git", + "repository_id": "12345678", + "created_at": "2024-01-15T10:30:00Z", + "updated_at": "2024-01-15T10:30:00Z", + "description": "Main production codebase", + "flags": { + "is_active": true, + "is_meo": false + }, + "hash": "abc123def456", + "applications_total": 3, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4" + } + } + } + ] + } + } + } + } + } + } + }, + "Codebase_Service_API_CodebaseReference": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the reference" + }, + "name": { + "type": "string", + "description": "Name of the git reference" + }, + "type": { + "type": "string", + "enum": [ + "branch", + "tag" + ], + "description": "Type of the git reference" + } + }, + "required": [ + "id", + "name", + "type" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "id": "ref-123", + "name": "main", + "type": "branch", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references/main" + } + } + } + } + } + }, + "Codebase_Service_API_CodebaseReferenceCollection": { + "description": "A list of git references for the codebase", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the reference" + }, + "name": { + "type": "string", + "description": "Name of the git reference" + }, + "type": { + "type": "string", + "enum": [ + "branch", + "tag" + ], + "description": "Type of the git reference" + } + }, + "required": [ + "id", + "name", + "type" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references?limit=10&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references?limit=10{&offset}", + "templated": true + } + }, + "count": 2, + "total": 2, + "pagination": { + "total": 2, + "limit": 10, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "ref-123", + "name": "main", + "type": "branch", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references/main" + } + } + }, + { + "id": "ref-456", + "name": "v1.0.0", + "type": "tag", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references/v1.0.0" + } + } + } + ] + } + } + } + } + }, + "Codebase_Service_API_DomainPattern": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Unique identifier for the domain pattern." + }, + "pattern": { + "type": "string", + "maxLength": 455, + "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", + "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].[environment-name].acme.com/app). Both [site-name] and [environment-name] tokens are mandatory at codebase level. Domain rules (enforced in service layer): ≤ 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] ≤ 14 chars, [environment-name] ≤ 10 chars). One pattern per codebase.\n", + "example": "[site-name].[environment-name].acme.com" + } + }, + "required": [ + "id", + "pattern" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "id": "22222222-2222-2222-2222-222222222222", + "pattern": "[site-name].[environment-name].acme.com", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findDomainPatternByCodebaseIdAndPatternId", + "parameters": { + "codebaseId": "$request.path.codebaseId", + "patternId": "$request.path.patternId" + } + } + } + }, + "Codebase_Service_API_DomainPatternCollection": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Unique identifier for the domain pattern." + }, + "pattern": { + "type": "string", + "maxLength": 455, + "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", + "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].[environment-name].acme.com/app). Both [site-name] and [environment-name] tokens are mandatory at codebase level. Domain rules (enforced in service layer): ≤ 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] ≤ 14 chars, [environment-name] ≤ 10 chars). One pattern per codebase.\n", + "example": "[site-name].[environment-name].acme.com" + } + }, + "required": [ + "id", + "pattern" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "examples": { + "domain_pattern_collection": { + "summary": "Domain pattern collection", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns" + }, + "limit": { + "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25{&offset}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25&offset=0{&sort}", + "templated": true + } + }, + "count": 1, + "total": 1, + "pagination": { + "total": 1, + "limit": 25, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "22222222-2222-2222-2222-222222222222", + "pattern": "[site-name].[environment-name].acme.com", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222" + } + } + } + ] + } + } + }, + "domain_pattern_collection_empty": { + "summary": "Empty domain pattern collection", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns" + }, + "limit": { + "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25{&offset}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25&offset=0{&sort}", + "templated": true + } + }, + "count": 0, + "total": 0, + "pagination": { + "total": 0, + "limit": 25, + "offset": 0 + }, + "_embedded": { + "items": [] + } + } + } + } + } + } + }, + "Codebase_Service_API_ForbiddenError": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "Codebase_Service_API_InternalServerError": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + }, + "Codebase_Service_API_InvalidOperationError": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "Codebase_Service_API_NotFoundError": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "Codebase_Service_API_SubscriptionCodebaseCollection": { + "description": "A list of codebases for the subscription", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the codebase" + }, + "label": { + "type": "string", + "description": "Human-readable label for the codebase" + }, + "region": { + "type": "string", + "description": "AWS region of the codebase" + }, + "vcs_url": { + "type": "string", + "format": "uri", + "description": "VCS repository URL" + }, + "repository_id": { + "type": "string", + "description": "VCS repository identifier" + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Creation timestamp" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "Last update timestamp" + }, + "description": { + "type": "string", + "description": "Description of the codebase" + }, + "flags": { + "type": "object", + "properties": { + "is_active": { + "type": "boolean", + "description": "Whether the codebase is active" + }, + "is_meo": { + "type": "boolean", + "description": "Whether the codebase is MEO" + } + }, + "required": [ + "is_active", + "is_meo" + ], + "description": "Feature flags for the codebase" + }, + "hash": { + "type": "string", + "description": "Codebase hash" + }, + "applications_total": { + "type": "integer", + "description": "Total number of applications linked to this codebase" + } + }, + "required": [ + "id", + "label", + "region", + "vcs_url", + "repository_id", + "created_at", + "updated_at", + "flags", + "hash", + "applications_total" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "examples": { + "subscription_codebase_collection": { + "summary": "Subscription codebase collection with pagination", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-12345/codebases?limit=10&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-12345/codebases?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-12345/codebases?limit=10{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-12345/codebases?limit=10&offset=0{&filter}", + "templated": true + } + }, + "count": 1, + "total": 1, + "pagination": { + "total": 1, + "limit": 10, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", + "label": "my-codebase", + "region": "us-east-1", + "vcs_url": "https://github.com/acquia/my-codebase.git", + "repository_id": "12345678", + "created_at": "2024-01-15T10:30:00Z", + "updated_at": "2024-01-15T10:30:00Z", + "description": "Main production codebase", + "flags": { + "is_active": true, + "is_meo": false + }, + "hash": "abc123def456", + "applications_total": 3, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4" + } + } + } + ] + } + } + } + } + } + } + }, + "Codebase_Service_API_UnauthorizedError": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "Codebase_Service_API_ValidationError": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "Tag_API_ForbiddenError": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "Tag_API_InternalServerError": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + }, + "Tag_API_NotFoundError": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "Tag_API_UnauthorizedError": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "Tag_API_TagCollection": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "minLength": 1, + "maxLength": 255, + "description": "The name of the tag" + }, + "color": { + "type": "string", + "pattern": "^#((?:[a-f0-9]{3}){1,2})$", + "minLength": 4, + "maxLength": 7, + "description": "The color of the tag" + } + }, + "required": [ + "name", + "color" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "examples": { + "tag_response": { + "summary": "Tag collection with pagination", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags?limit=2&offset=2" + }, + "limit": { + "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags?offset=2{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags?limit=2{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags?limit=2&offset=2{&filter}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags?limit=2&offset=2{&sort}", + "templated": true + }, + "prev": { + "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags?limit=2&offset=0" + }, + "next": { + "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags?offset=4&limit=2" + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "name": "tag-1", + "color": "#ffffff", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags/tag-1" + } + } + }, + { + "name": "tag-2", + "color": "#000000", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags/tag-2" + } + } + } + ] + } + } + } + } + } + } + }, + "Tag_API_Tag": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "minLength": 1, + "maxLength": 255, + "description": "The name of the tag" + }, + "color": { + "type": "string", + "pattern": "^#((?:[a-f0-9]{3}){1,2})$", + "minLength": 4, + "maxLength": 7, + "description": "The color of the tag" + } + }, + "required": [ + "name", + "color" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "name": "tag-1", + "color": "#ffffff", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags/tag-1" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findTagByTagName", + "parameters": { + "tagName": "$request.path.tagName" + } + } + } + }, + "Tag_API_ValidationError": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "Tag_API_InvalidOperationError": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "Site_Service_API_ForbiddenError": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "Site_Service_API_InternalServerError": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + }, + "Site_Service_API_InvalidOperationError": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "Site_Service_API_NotFoundError": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "Site_Service_API_UnauthorizedError": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "Site_Service_API_ValidationError": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "Site_Service_API_Site": { + "description": "Site details", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "description": "A Site resource", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the site", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "12345678-1234-1234-1234-123456789012" + }, + "name": { + "type": "string", + "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", + "minLength": 1, + "maxLength": 14, + "pattern": "^[a-z][a-z0-9]*$", + "example": "mysite" + }, + "label": { + "type": "string", + "description": "The human-readable label of the site", + "minLength": 1, + "maxLength": 50, + "example": "My Site 1" + }, + "description": { + "type": "string", + "description": "A description of the site", + "maxLength": 512, + "example": "A production site for the marketing team." + }, + "codebase_id": { + "type": "string", + "description": "The unique identifier of the codebase this site belongs to", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "550e8400-e29b-41d4-a716-446655441210" + }, + "status": { + "type": "string", + "description": "The current lifecycle status of the site. ready indicates the site is active and operational. marked-for-deletion indicates the site has been scheduled for deletion and can still be recovered.\n", + "enum": [ + "ready", + "marked-for-deletion" + ], + "example": "ready" + }, + "delete_at": { + "type": "string", + "format": "date-time", + "description": "ISO 8601 datetime indicating when the site is scheduled for deletion. Only present when status is marked-for-deletion.", + "example": "2025-06-15T00:00:00Z" + } + }, + "required": [ + "id", + "name", + "label", + "codebase_id", + "status" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "codebase": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890" + }, + "codebase": { + "href": "https://cloud.acquia.com/api/codebases/a9b8c7d6-e5f4-3210-abcd-ef9876543210" + } + }, + "id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", + "name": "mysite", + "label": "My Site", + "description": "This is a description of my site.", + "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", + "status": "ready" + } + } + }, + "links": { + "self": { + "operationId": "findSiteBySiteId", + "parameters": { + "siteId": "$request.path.siteId" + } + } + } + }, + "Site_Service_API_SiteCollection": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "description": "A Site resource", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the site", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "12345678-1234-1234-1234-123456789012" + }, + "name": { + "type": "string", + "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", + "minLength": 1, + "maxLength": 14, + "pattern": "^[a-z][a-z0-9]*$", + "example": "mysite" + }, + "label": { + "type": "string", + "description": "The human-readable label of the site", + "minLength": 1, + "maxLength": 50, + "example": "My Site 1" + }, + "description": { + "type": "string", + "description": "A description of the site", + "maxLength": 512, + "example": "A production site for the marketing team." + }, + "codebase_id": { + "type": "string", + "description": "The unique identifier of the codebase this site belongs to", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "550e8400-e29b-41d4-a716-446655441210" + }, + "status": { + "type": "string", + "description": "The current lifecycle status of the site. ready indicates the site is active and operational. marked-for-deletion indicates the site has been scheduled for deletion and can still be recovered.\n", + "enum": [ + "ready", + "marked-for-deletion" + ], + "example": "ready" + }, + "delete_at": { + "type": "string", + "format": "date-time", + "description": "ISO 8601 datetime indicating when the site is scheduled for deletion. Only present when status is marked-for-deletion.", + "example": "2025-06-15T00:00:00Z" + } + }, + "required": [ + "id", + "name", + "label", + "codebase_id", + "status" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "examples": { + "site_collection": { + "summary": "Site collection with pagination", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/sites?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/sites?limit=2{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0{&filter}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0{&sort}", + "templated": true + }, + "next": { + "href": "https://cloud.acquia.com/api/sites?limit=2&offset=2" + } + }, + "count": 2, + "total": 4, + "pagination": { + "total": 4, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", + "name": "mysite", + "label": "My Site", + "description": "A description of my site.", + "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", + "status": "ready", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890" + } + } + }, + { + "id": "e2b3c4d5-f6a7-8901-bcde-f12345678901", + "name": "anothersite", + "label": "Another Site", + "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", + "status": "marked-for-deletion", + "delete_at": "2025-01-01T00:00:00Z", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sites/e2b3c4d5-f6a7-8901-bcde-f12345678901" + } + } + } + ] + } + } + } + } + } + } + }, + "CDN_API_ValidationError": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "CDN_API_UnauthorizedError": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "CDN_API_ForbiddenError": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "CDN_API_NotFoundError": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "CDN_API_InvalidOperationError": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "CDN_API_InternalServerError": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + }, + "CDN_API_DomainCollection": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "description": "CDN domain resource.", + "properties": { + "domain": { + "type": "string", + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?(\\.[a-zA-Z]{2,})+$", + "description": "The fully qualified domain name." + }, + "subscription_uuid": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "The unique identifier of the subscription the domain belongs to." + }, + "environment_id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "The environment identifier associated with the domain." + }, + "application_name": { + "type": "string", + "description": "The name of the application associated with the domain." + }, + "status": { + "type": "string", + "description": "The current status of the domain.", + "enum": [ + "connecting-to-edge", + "domain-validation-pending", + "ready-for-dns-repointing", + "configuration-failed", + "configured" + ] + }, + "ownership_validation_cname": { + "type": "string", + "description": "The CNAME record that must be created on the domain's DNS to validate ownership." + }, + "bandwidth_usage_tb": { + "type": "number", + "format": "float", + "description": "The bandwidth usage for the domain in terabytes." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the domain was created." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the domain was last updated." + } + }, + "required": [ + "domain", + "subscription_uuid", + "environment_id", + "status", + "application_name", + "ownership_validation_cname", + "bandwidth_usage_tb", + "created_at", + "updated_at" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "examples": { + "domains_response": { + "summary": "Domain collection with pagination", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=0{&filter}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=0{&sort}", + "templated": true + }, + "next": { + "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=2" + } + }, + "count": 2, + "total": 50, + "pagination": { + "total": 50, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "domain": "example.com", + "subscription_uuid": "12345678-1234-1234-1234-123456789012", + "environment_id": "0c3f0f5f-5727-4838-9459-2d90ee1cf7c1", + "application_name": "my-application", + "status": "configured", + "created_at": "2024-01-15T10:30:00Z", + "updated_at": "2024-01-20T15:45:00Z", + "ownership_validation_cname": "_acme-challenge.example.com", + "bandwidth_usage_tb": 1.25, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains/example.com" + } + } + }, + { + "domain": "test.example.org", + "subscription_uuid": "12345678-1234-1234-1234-123456789012", + "environment_id": "1d4f1f6f-6838-5949-a560-3e01ff2cf8d2", + "application_name": "test-application", + "status": "connecting-to-edge", + "created_at": "2024-01-18T08:15:00Z", + "ownership_validation_cname": "_acme-challenge.example.com", + "bandwidth_usage_tb": 1.25, + "updated_at": "2024-01-18T08:15:00Z", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains/test.example.org" + } + } + } + ] + } + } + } + } + } + } + }, + "CDN_API_Domain": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "description": "CDN domain resource.", + "properties": { + "domain": { + "type": "string", + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?(\\.[a-zA-Z]{2,})+$", + "description": "The fully qualified domain name." + }, + "subscription_uuid": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "The unique identifier of the subscription the domain belongs to." + }, + "environment_id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "The environment identifier associated with the domain." + }, + "application_name": { + "type": "string", + "description": "The name of the application associated with the domain." + }, + "status": { + "type": "string", + "description": "The current status of the domain.", + "enum": [ + "connecting-to-edge", + "domain-validation-pending", + "ready-for-dns-repointing", + "configuration-failed", + "configured" + ] + }, + "ownership_validation_cname": { + "type": "string", + "description": "The CNAME record that must be created on the domain's DNS to validate ownership." + }, + "bandwidth_usage_tb": { + "type": "number", + "format": "float", + "description": "The bandwidth usage for the domain in terabytes." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the domain was created." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the domain was last updated." + } + }, + "required": [ + "domain", + "subscription_uuid", + "environment_id", + "status", + "application_name", + "ownership_validation_cname", + "bandwidth_usage_tb", + "created_at", + "updated_at" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "domain": "example.com", + "subscription_uuid": "12345678-1234-1234-1234-123456789012", + "environment_id": "0c3f0f5f-5727-4838-9459-2d90ee1cf7c1", + "application_name": "my-application", + "status": "configured", + "ownership_validation_cname": "_acme-challenge.example.com", + "bandwidth_usage_tb": 1.25, + "created_at": "2024-01-15T10:30:00Z", + "updated_at": "2024-01-20T15:45:00Z", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains/example.com" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findDomainBySubscriptionUuidAndDomainName", + "parameters": { + "subscriptionUuid": "$request.path.subscriptionUuid", + "domainName": "$request.path.domainName" + } + } + } + }, + "CDN_API_DomainCdnProvisioningAccepted": { + "description": "Accepted - Provisioning in progress", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "The domain provisioning has been started.", + "description": "Confirmation message" + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains/example.com" + } + }, + "message": "The domain provisioning has been started." + } + } + } + }, + "CDN_API_PurgeAccepted": { + "description": "Accepted - Purge request submitted", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "const": "The purge request has been submitted.", + "description": "Confirmation message" + }, + "purge_id": { + "type": "string", + "description": "Unique identifier for tracking the purge request" + } + }, + "required": [ + "purge_id" + ] + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/0c3f0f5f-5727-4838-9459-2d90ee1cf7c1/actions/purge-cdn" + } + }, + "message": "The purge request has been submitted.", + "purge_id": "purge-12345678-1234-1234-1234-123456789012" + } + } + } + }, + "Environment_Service_API_ForbiddenError": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "Environment_Service_API_InternalServerError": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + }, + "Environment_Service_API_NotFoundError": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "Environment_Service_API_UnauthorizedError": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "Environment_Service_API_ValidationError": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "Environment_Service_API_InvalidOperationError": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "Environment_Service_API_DeploymentCollection": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "description": "Deployment properties", + "properties": { + "id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Unique identifier for the deployment." + }, + "environment_id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Identifier of the environment this deployment belongs to." + }, + "status": { + "type": "string", + "description": "Current status of the deployment.", + "enum": [ + "waiting", + "received", + "started", + "done", + "failed", + "error", + "killed" + ] + }, + "code_reference": { + "type": "string", + "description": "The code reference (e.g. branch or tag) deployed." + }, + "run_hooks": { + "type": "boolean", + "description": "Whether deployment hooks were run." + }, + "hooks_argument": { + "type": [ + "string", + "null" + ], + "description": "Additional arguments passed to deployment hooks." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the deployment was created." + }, + "started_at": { + "type": [ + "string", + "null" + ], + "format": "date-time", + "description": "Timestamp when the deployment started." + }, + "completed_at": { + "type": [ + "string", + "null" + ], + "format": "date-time", + "description": "Timestamp when the deployment completed." + }, + "sender_id": { + "type": [ + "string", + "null" + ], + "description": "Identifier of the user or system that initiated the deployment." + }, + "logs": { + "type": [ + "string", + "null" + ], + "description": "Deployment log output." + } + }, + "required": [ + "id", + "environment_id", + "status", + "code_reference", + "run_hooks", + "created_at" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "examples": { + "deployment_response": { + "summary": "Deployment collection with pagination", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=2" + }, + "limit": { + "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?offset=2{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=2{&filter}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=2{&sort}", + "templated": true + }, + "prev": { + "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=0" + }, + "next": { + "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=4" + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3", + "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", + "status": "done", + "code_reference": "tags/v1.0.0", + "run_hooks": true, + "hooks_argument": null, + "sender_id": null, + "created_at": "2025-04-01T13:01:06.603Z", + "started_at": "2025-04-01T13:01:10.123Z", + "completed_at": "2025-04-01T13:05:00.000Z", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" + }, + "environment": { + "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323" + } + } + }, + { + "id": "f1dae0f8-67c7-5d1e-cbe1-1f7604f77de4", + "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", + "status": "failed", + "code_reference": "tags/v0.9.0", + "run_hooks": false, + "hooks_argument": null, + "sender_id": null, + "created_at": "2025-03-28T09:15:00.000Z", + "started_at": "2025-03-28T09:15:05.000Z", + "completed_at": "2025-03-28T09:18:00.000Z", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/deployments/f1dae0f8-67c7-5d1e-cbe1-1f7604f77de4" + }, + "environment": { + "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323" + } + } + } + ] + } + } + } + } + } + } + }, + "Environment_Service_API_Deployment": { + "description": "Deployment details", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "description": "Deployment properties", + "properties": { + "id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Unique identifier for the deployment." + }, + "environment_id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Identifier of the environment this deployment belongs to." + }, + "status": { + "type": "string", + "description": "Current status of the deployment.", + "enum": [ + "waiting", + "received", + "started", + "done", + "failed", + "error", + "killed" + ] + }, + "code_reference": { + "type": "string", + "description": "The code reference (e.g. branch or tag) deployed." + }, + "run_hooks": { + "type": "boolean", + "description": "Whether deployment hooks were run." + }, + "hooks_argument": { + "type": [ + "string", + "null" + ], + "description": "Additional arguments passed to deployment hooks." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the deployment was created." + }, + "started_at": { + "type": [ + "string", + "null" + ], + "format": "date-time", + "description": "Timestamp when the deployment started." + }, + "completed_at": { + "type": [ + "string", + "null" + ], + "format": "date-time", + "description": "Timestamp when the deployment completed." + }, + "sender_id": { + "type": [ + "string", + "null" + ], + "description": "Identifier of the user or system that initiated the deployment." + }, + "logs": { + "type": [ + "string", + "null" + ], + "description": "Deployment log output." + } + }, + "required": [ + "id", + "environment_id", + "status", + "code_reference", + "run_hooks", + "created_at" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "id": "e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3", + "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", + "status": "started", + "code_reference": "tags/v1.0.0", + "run_hooks": true, + "hooks_argument": "--skip-db-update", + "created_at": "2025-04-01T13:01:06.603Z", + "started_at": "2025-04-01T13:01:10.123Z", + "completed_at": null, + "sender_id": null, + "logs": null, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" + }, + "environment": { + "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findDeploymentByDeploymentId", + "parameters": { + "deploymentId": "$request.path.deploymentId" + } + } + } + }, + "Environment_Service_API_CodeDeploy": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "concurrency": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "description": "Maximum number of concurrent code deploys allowed for the environment." + } + }, + "required": [ + "concurrency" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "concurrency": 5, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/code-deploy" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findCodeDeployByEnvironmentId", + "parameters": { + "environmentId": "$request.path.environmentId" + } + } + } + }, + "Environment_Service_API_Environment": { + "description": "Environment details", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "description": "Environment properties", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the environment", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "name": { + "type": "string", + "description": "The machine name of the environment" + }, + "label": { + "type": "string", + "description": "The human-readable label of the environment" + }, + "description": { + "type": "string", + "description": "A description of the environment" + }, + "status": { + "type": "string", + "description": "The current status of the environment", + "enum": [ + "normal", + "allocated", + "launching", + "killed", + "cancelled", + "stopped" + ] + }, + "flags": { + "type": "object", + "description": "Environment configuration flags", + "additionalProperties": { + "type": "boolean" + } + }, + "properties": { + "type": "object", + "description": "Environment PHP and server properties", + "properties": { + "version": { + "type": "string", + "description": "PHP version" + }, + "max_execution_time": { + "type": "integer", + "description": "Maximum execution time in seconds" + }, + "memory_limit": { + "type": "integer", + "description": "Memory limit in MB" + }, + "apcu": { + "type": "integer", + "description": "APCu cache size in MB" + }, + "client_max_body_size": { + "type": "integer", + "description": "Maximum client body size in MB" + }, + "max_input_vars": { + "type": "integer", + "description": "Maximum number of input variables" + }, + "max_post_size": { + "type": "integer", + "description": "Maximum POST size in MB" + }, + "memcached_limit": { + "type": "integer", + "description": "Memcached limit in MB" + }, + "upload_max_filesize": { + "type": "integer", + "description": "Maximum upload file size in MB" + }, + "operating_system": { + "type": "string", + "description": "Operating system codename" + } + } + }, + "reference": { + "type": "string", + "description": "The code reference (branch, tag, or commit) deployed to this environment" + }, + "code_switch_status": { + "type": "string", + "description": "The status of the Switch Code action", + "enum": [ + "IDLE", + "IN_PROGRESS" + ] + }, + "ssh_url": { + "type": "string", + "format": "uri", + "description": "The SSH connection string for accessing this environment" + } + }, + "required": [ + "id", + "name", + "label", + "status", + "flags", + "properties", + "reference", + "code_switch_status", + "ssh_url" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "codebase": { + "allOf": [ + { + "type": "object", + "description": "Embedded codebase resource", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the codebase" + } + }, + "required": [ + "id" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + } + } + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc" + }, + "codebase": { + "href": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323" + } + }, + "id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", + "name": "environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc", + "label": "Environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc", + "description": "Description of 3e8ecbec-ea7c-4260-8414-ef2938c859bc", + "status": "normal", + "flags": { + "production": false, + "protection_mode": false + }, + "properties": { + "version": "8.3", + "max_execution_time": 10, + "memory_limit": 192, + "apcu": 32, + "client_max_body_size": 192, + "max_input_vars": 1000, + "max_post_size": 256, + "memcached_limit": 128, + "upload_max_filesize": 192, + "operating_system": "focal" + }, + "reference": "tag/v3.1", + "code_switch_status": "IDLE", + "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", + "_embedded": { + "codebase": { + "id": "d3f7270e-c45f-4801-9308-5e8afe84a323", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323" + } + } + } + } + } + } + }, + "links": { + "self": { + "operationId": "findEnvironmentByEnvironmentId", + "parameters": { + "environmentId": "$request.path.environmentId" + } + } + } + }, + "Environment_Service_API_EnvironmentCollection": { + "description": "Environment collection", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "description": "Environment properties", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the environment", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "name": { + "type": "string", + "description": "The machine name of the environment" + }, + "label": { + "type": "string", + "description": "The human-readable label of the environment" + }, + "description": { + "type": "string", + "description": "A description of the environment" + }, + "status": { + "type": "string", + "description": "The current status of the environment", + "enum": [ + "normal", + "allocated", + "launching", + "killed", + "cancelled", + "stopped" + ] + }, + "flags": { + "type": "object", + "description": "Environment configuration flags", + "additionalProperties": { + "type": "boolean" + } + }, + "properties": { + "type": "object", + "description": "Environment PHP and server properties", + "properties": { + "version": { + "type": "string", + "description": "PHP version" + }, + "max_execution_time": { + "type": "integer", + "description": "Maximum execution time in seconds" + }, + "memory_limit": { + "type": "integer", + "description": "Memory limit in MB" + }, + "apcu": { + "type": "integer", + "description": "APCu cache size in MB" + }, + "client_max_body_size": { + "type": "integer", + "description": "Maximum client body size in MB" + }, + "max_input_vars": { + "type": "integer", + "description": "Maximum number of input variables" + }, + "max_post_size": { + "type": "integer", + "description": "Maximum POST size in MB" + }, + "memcached_limit": { + "type": "integer", + "description": "Memcached limit in MB" + }, + "upload_max_filesize": { + "type": "integer", + "description": "Maximum upload file size in MB" + }, + "operating_system": { + "type": "string", + "description": "Operating system codename" + } + } + }, + "reference": { + "type": "string", + "description": "The code reference (branch, tag, or commit) deployed to this environment" + }, + "code_switch_status": { + "type": "string", + "description": "The status of the Switch Code action", + "enum": [ + "IDLE", + "IN_PROGRESS" + ] + }, + "ssh_url": { + "type": "string", + "format": "uri", + "description": "The SSH connection string for accessing this environment" + } + }, + "required": [ + "id", + "name", + "label", + "status", + "flags", + "properties", + "reference", + "code_switch_status", + "ssh_url" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2{&offset}", + "templated": true + } + }, + "count": 1, + "total": 1, + "pagination": { + "total": 1, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", + "name": "dev", + "label": "Dev", + "description": "Development environment", + "status": "normal", + "reference": "branch/main", + "code_switch_status": "IDLE", + "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", + "flags": { + "production": false, + "protection_mode": false + }, + "properties": { + "version": "8.3" + }, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc" + } + } + } + ] + } + } + } + } + }, + "Environment_Service_API_FilterableEnvironmentCollection": { + "description": "Environment collection", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "description": "Environment properties", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the environment", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "name": { + "type": "string", + "description": "The machine name of the environment" + }, + "label": { + "type": "string", + "description": "The human-readable label of the environment" + }, + "description": { + "type": "string", + "description": "A description of the environment" + }, + "status": { + "type": "string", + "description": "The current status of the environment", + "enum": [ + "normal", + "allocated", + "launching", + "killed", + "cancelled", + "stopped" + ] + }, + "flags": { + "type": "object", + "description": "Environment configuration flags", + "additionalProperties": { + "type": "boolean" + } + }, + "properties": { + "type": "object", + "description": "Environment PHP and server properties", + "properties": { + "version": { + "type": "string", + "description": "PHP version" + }, + "max_execution_time": { + "type": "integer", + "description": "Maximum execution time in seconds" + }, + "memory_limit": { + "type": "integer", + "description": "Memory limit in MB" + }, + "apcu": { + "type": "integer", + "description": "APCu cache size in MB" + }, + "client_max_body_size": { + "type": "integer", + "description": "Maximum client body size in MB" + }, + "max_input_vars": { + "type": "integer", + "description": "Maximum number of input variables" + }, + "max_post_size": { + "type": "integer", + "description": "Maximum POST size in MB" + }, + "memcached_limit": { + "type": "integer", + "description": "Memcached limit in MB" + }, + "upload_max_filesize": { + "type": "integer", + "description": "Maximum upload file size in MB" + }, + "operating_system": { + "type": "string", + "description": "Operating system codename" + } + } + }, + "reference": { + "type": "string", + "description": "The code reference (branch, tag, or commit) deployed to this environment" + }, + "code_switch_status": { + "type": "string", + "description": "The status of the Switch Code action", + "enum": [ + "IDLE", + "IN_PROGRESS" + ] + }, + "ssh_url": { + "type": "string", + "format": "uri", + "description": "The SSH connection string for accessing this environment" + } + }, + "required": [ + "id", + "name", + "label", + "status", + "flags", + "properties", + "reference", + "code_switch_status", + "ssh_url" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2&offset=0{&filter}", + "templated": true + } + }, + "count": 1, + "total": 1, + "pagination": { + "total": 1, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", + "name": "dev", + "label": "Dev", + "description": "Development environment", + "status": "normal", + "reference": "branch/main", + "code_switch_status": "IDLE", + "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", + "flags": { + "production": false, + "protection_mode": false + }, + "properties": { + "version": "8.3" + }, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc" + } + } + } + ] + } + } + } + } + }, + "Environment_Service_API_SiteInstance": { + "description": "Site Instance details", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "description": "Site Instance properties", + "properties": { + "site_id": { + "type": "string", + "description": "The unique identifier of the site", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "environment_id": { + "type": "string", + "description": "The unique identifier of the environment", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "status": { + "type": "string", + "description": "The current status of the site instance", + "enum": [ + "active", + "creating", + "create-failed", + "updating", + "update-failed", + "deleting", + "deleted", + "delete-failed" + ] + }, + "health_status": { + "type": "object", + "description": "Health status information for the site instance", + "properties": { + "code": { + "type": "string", + "description": "Health status code" + }, + "summary": { + "type": "string", + "description": "Summary of the health status" + }, + "details": { + "type": "string", + "description": "Detailed health status information" + } + }, + "required": [ + "code", + "summary", + "details" + ] + }, + "domains": { + "type": "array", + "description": "List of domains associated with the site instance", + "items": { + "type": "string" + } + }, + "deployment_order": { + "type": [ + "integer", + "null" + ], + "description": "The order in which this site instance is deployed relative to others.", + "example": 1 + }, + "delete_at": { + "type": [ + "string", + "null" + ], + "format": "date-time", + "description": "The scheduled deletion date-time for this site instance, if set." + }, + "date_marked_for_deletion": { + "type": [ + "string", + "null" + ], + "format": "date-time", + "description": "The date-time when this site instance was marked for deletion." + }, + "protection_mode": { + "type": [ + "object", + "null" + ], + "description": "The current protection mode of the site instance", + "properties": { + "is_enabled": { + "type": "boolean", + "description": "Indicates whether the protection mode is enabled for the site instance" + }, + "is_inherited": { + "type": "boolean", + "description": "Indicates whether the protection mode is inherited from the environment" + } + }, + "required": [ + "is_enabled", + "is_inherited" + ] + } + }, + "required": [ + "site_id", + "environment_id", + "status", + "health_status", + "domains" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323" + } + }, + "site_id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", + "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", + "status": "active", + "health_status": { + "code": "OK", + "summary": "The health status is OK.", + "details": "The site instance is active" + }, + "domains": [ + "example.com", + "example-2.com" + ], + "protection_mode": { + "is_enabled": true, + "is_inherited": true + } + } + } + }, + "links": { + "self": { + "operationId": "findSiteInstanceBySiteIdAndEnvironmentId", + "parameters": { + "siteId": "$request.path.siteId", + "environmentId": "$request.path.environmentId" + } + } + } + }, + "Environment_Service_API_Domain": { + "description": "Domain details", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "description": "Domain properties", + "properties": { + "name": { + "type": "string", + "description": "The domain name." + }, + "is_managed": { + "type": "boolean", + "description": "Whether the domain is managed by Acquia." + } + }, + "required": [ + "name", + "is_managed" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "name": "example.com", + "is_managed": false, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findDomainBySiteIdAndEnvironmentIdAndDomainName", + "parameters": { + "siteId": "$request.path.siteId", + "environmentId": "$request.path.environmentId", + "domainName": "$request.path.domainName" + } + } + } + }, + "Environment_Service_API_DomainCollection": { + "description": "Domain collection", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "description": "Domain properties", + "properties": { + "name": { + "type": "string", + "description": "The domain name." + }, + "is_managed": { + "type": "boolean", + "description": "Whether the domain is managed by Acquia." + } + }, + "required": [ + "name", + "is_managed" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2&offset=0{&filter}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2&offset=0{&sort}", + "templated": true + } + }, + "count": 1, + "total": 1, + "pagination": { + "total": 1, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "name": "example.com", + "is_managed": false, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com" + } + } + } + ] + } + } + } + } + }, + "Environment_Service_API_DomainStatus": { + "description": "Domain DNS status details", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "description": "Domain DNS status properties", + "properties": { + "hostname": { + "type": "string", + "description": "The domain name." + }, + "site_id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Identifier of the site this domain belongs to." + }, + "environment_id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Identifier of the environment this domain belongs to." + }, + "ip_addresses": { + "type": "array", + "description": "List of IP addresses resolving for this domain.", + "items": { + "type": "string" + } + }, + "cnames": { + "type": "array", + "description": "List of CNAME records resolving for this domain.", + "items": { + "type": "string" + } + }, + "flags": { + "type": "object", + "description": "Status flags for the domain.", + "properties": { + "default": { + "type": "boolean", + "description": "Whether this is the default domain." + }, + "active": { + "type": "boolean", + "description": "Whether the domain is active." + }, + "dns_resolves": { + "type": "boolean", + "description": "Whether the domain DNS resolves correctly." + }, + "acquia_hosted": { + "type": "boolean", + "description": "Whether the domain is hosted on Acquia infrastructure." + } + }, + "required": [ + "default", + "active", + "dns_resolves", + "acquia_hosted" + ] + } + }, + "required": [ + "hostname", + "site_id", + "environment_id", + "ip_addresses", + "cnames", + "flags" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "hostname": "example.com", + "site_id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", + "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", + "ip_addresses": [ + "203.0.113.10" + ], + "cnames": [], + "flags": { + "default": false, + "active": true, + "dns_resolves": true, + "acquia_hosted": true + }, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com/status" + } + } + } + } + } + }, + "Environment_Service_API_Database": { + "description": "Database details", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "description": "Database properties", + "properties": { + "database_name": { + "type": "string", + "description": "The name of the database." + }, + "database_role": { + "type": "string", + "description": "The role of the database (e.g. the site username)." + } + }, + "required": [ + "database_name", + "database_role" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "database_name": "site_dev", + "database_role": "site_dev_user", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findDatabaseBySiteIdAndEnvironmentId", + "parameters": { + "siteId": "$request.path.siteId", + "environmentId": "$request.path.environmentId" + } + } + } + }, + "Environment_Service_API_DatabaseConnection": { + "description": "Database connection credential details", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "description": "Database connection credential properties", + "properties": { + "db_host": { + "type": "string", + "description": "The database host." + }, + "name": { + "type": "string", + "description": "The database name." + }, + "password": { + "type": "string", + "description": "The database password." + }, + "user_name": { + "type": "string", + "description": "The database username." + }, + "ssh_host": { + "type": "string", + "description": "The SSH host for tunneling to the database." + } + }, + "required": [ + "db_host", + "name", + "password", + "user_name", + "ssh_host" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "db_host": "db.example.com", + "name": "site_dev", + "password": "s3cr3t", + "user_name": "site_dev_user", + "ssh_host": "site.dev.ssh.hosted.acquia-sites.com", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/connection" + } + } + } + } + } + }, + "Environment_Service_API_DatabaseBackup": { + "description": "Database backup details", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "description": "Database backup properties", + "properties": { + "id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Unique identifier for the database backup." + }, + "database_id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Identifier of the database this backup belongs to." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the backup was created." + }, + "type": { + "type": "string", + "enum": [ + "DAILY", + "ON_DEMAND" + ], + "description": "The type of backup." + } + }, + "required": [ + "id", + "database_id", + "created_at", + "type" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "database_id": "b2c3d4e5-f6a7-8901-bcde-f01234567891", + "created_at": "2025-04-01T02:00:00.000Z", + "type": "DAILY", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups/a1b2c3d4-e5f6-7890-abcd-ef1234567890" + }, + "download": { + "href": "https://s3.amazonaws.com/acquia-backups/backup-a1b2c3d4.sql.gz?X-Amz-Expires=3600&X-Amz-Signature=abc123" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findDatabaseBackupBySiteIdAndEnvironmentIdAndBackupId", + "parameters": { + "siteId": "$request.path.siteId", + "environmentId": "$request.path.environmentId", + "backupId": "$request.path.backupId" + } + } + } + }, + "Environment_Service_API_DatabaseBackupCollection": { + "description": "Database backup collection", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "description": "Database backup properties", + "properties": { + "id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Unique identifier for the database backup." + }, + "database_id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Identifier of the database this backup belongs to." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the backup was created." + }, + "type": { + "type": "string", + "enum": [ + "DAILY", + "ON_DEMAND" + ], + "description": "The type of backup." + } + }, + "required": [ + "id", + "database_id", + "created_at", + "type" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2&offset=0{&filter}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2&offset=0{&sort}", + "templated": true + } + }, + "count": 1, + "total": 1, + "pagination": { + "total": 1, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "database_id": "b2c3d4e5-f6a7-8901-bcde-f01234567891", + "created_at": "2025-04-01T02:00:00.000Z", + "type": "DAILY", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups/a1b2c3d4-e5f6-7890-abcd-ef1234567890" + } + } + } + ] + } + } + } + } + }, + "Environment_Service_API_EgressIpCollection": { + "description": "Egress IP collection", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "description": "Egress IP properties", + "properties": { + "id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Unique identifier for the egress IP." + }, + "status": { + "type": "string", + "description": "Current status of the egress IP." + }, + "ipv4": { + "type": "string", + "description": "The IPv4 address." + }, + "ipv6": { + "type": [ + "string", + "null" + ], + "description": "The IPv6 address, if assigned." + }, + "flags": { + "type": "object", + "description": "Status flags for the egress IP.", + "additionalProperties": { + "type": "boolean" + } + } + }, + "required": [ + "id", + "status", + "ipv4", + "flags" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "example": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/eips?limit=25&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/eips?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/eips?limit=25{&offset}", + "templated": true + } + }, + "count": 1, + "total": 1, + "pagination": { + "total": 1, + "limit": 25, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "eip-a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "status": "active", + "ipv4": "203.0.113.10", + "ipv6": null, + "flags": { + "is_primary": true + } + } + ] + } + } + } + } + }, + "Environment_Service_API_TrustedProxies": { + "description": "Trusted proxy configuration details", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "description": "Trusted proxy configuration properties", + "properties": { + "cidrs_ipv4": { + "type": "array", + "description": "List of trusted IPv4 CIDR blocks.", + "items": { + "type": "string" + } + }, + "cidrs_ipv6": { + "type": "array", + "description": "List of trusted IPv6 CIDR blocks.", + "items": { + "type": "string" + } + }, + "associated_cdns": { + "type": "object", + "description": "Map of CDN configurations associated with this environment, keyed by CDN name.", + "additionalProperties": { + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "Display label for the CDN." + }, + "is_enabled": { + "type": "boolean", + "description": "Whether the CDN is enabled." + } + }, + "required": [ + "label", + "is_enabled" + ] + } + } + }, + "required": [ + "cidrs_ipv4", + "cidrs_ipv6", + "associated_cdns" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "cidrs_ipv4": [ + "203.0.113.0/24" + ], + "cidrs_ipv6": [], + "associated_cdns": { + "cloudflare": { + "label": "Cloudflare", + "is_enabled": true + } + }, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/trusted-proxies" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findTrustedProxiesByEnvironmentId", + "parameters": { + "environmentId": "$request.path.environmentId" + } + } + } + }, + "Environment_Service_API_PrivateNetwork": { + "description": "Private network details", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "description": "Private network reference properties", + "properties": { + "id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Unique identifier for the private network." + }, + "label": { + "type": [ + "string", + "null" + ], + "description": "Human-readable label for the private network." + } + }, + "required": [ + "id" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "id": "pn-a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "label": "Production VPC", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/private-network" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findPrivateNetworkByEnvironmentId", + "parameters": { + "environmentId": "$request.path.environmentId" + } + } + } + }, + "Environment_Service_API_DomainPattern": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Unique identifier for the domain pattern." + }, + "pattern": { + "type": "string", + "maxLength": 455, + "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", + "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].acme.com/app). The [site-name] token is mandatory; [environment-name] is optional at environment level. Domain rules (enforced in service layer): ≤ 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] ≤ 14 chars). One pattern per environment.\n", + "example": "[site-name].acme.com" + } + }, + "required": [ + "id", + "pattern" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "id": "11111111-1111-1111-1111-111111111111", + "pattern": "[site-name].acme.com", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findDomainPatternByEnvironmentIdAndPatternId", + "parameters": { + "environmentId": "$request.path.environmentId", + "patternId": "$request.path.patternId" + } + } + } + }, + "Environment_Service_API_DomainPatternCollection": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Unique identifier for the domain pattern." + }, + "pattern": { + "type": "string", + "maxLength": 455, + "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", + "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].acme.com/app). The [site-name] token is mandatory; [environment-name] is optional at environment level. Domain rules (enforced in service layer): ≤ 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] ≤ 14 chars). One pattern per environment.\n", + "example": "[site-name].acme.com" + } + }, + "required": [ + "id", + "pattern" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "examples": { + "domain_pattern_collection": { + "summary": "Domain pattern collection", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns" + }, + "limit": { + "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25{&offset}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25&offset=0{&sort}", + "templated": true + } + }, + "count": 1, + "total": 1, + "pagination": { + "total": 1, + "limit": 25, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "11111111-1111-1111-1111-111111111111", + "pattern": "[site-name].acme.com", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111" + } + } + } + ] + } + } + }, + "domain_pattern_collection_empty": { + "summary": "Empty domain pattern collection", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns" + }, + "limit": { + "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25{&offset}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25&offset=0{&sort}", + "templated": true + } + }, + "count": 0, + "total": 0, + "pagination": { + "total": 0, + "limit": 25, + "offset": 0 + }, + "_embedded": { + "items": [] + } + } + } + } + } + } + }, + "Federated_Authentication_API_IdentityProvider": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "identity_provider_id": { + "type": "string", + "description": "Unique identifier for the identity provider." + }, + "label": { + "type": "string", + "description": "The name of the Identity Provider." + }, + "subscription_id": { + "type": "string", + "description": "Unique identifier for the subscription that the Identity Provider belongs to." + }, + "idp_entity_id": { + "type": "string", + "format": "uri", + "description": "The Identity Provider Entity ID." + }, + "sp_entity_id": { + "type": "string", + "format": "uri", + "description": "The Service Provider Entity ID." + }, + "sso_url": { + "type": "string", + "format": "uri", + "description": "The Single Sign-On URL for the Identity Provider." + }, + "certificate": { + "type": "string", + "description": "The X.509 certificate used for SAML authentication." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the Identity Provider was created." + } + }, + "required": [ + "identity_provider_id", + "label", + "subscription_id", + "idp_entity_id", + "sp_entity_id", + "sso_url", + "certificate", + "created_at" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "identity_provider_id": "908914ec-2354-4fb1-9298-637247eccc3a", + "label": "Acme Corporation Azure AD", + "subscription_id": "sub-123", + "idp_entity_id": "https://idp.acme.com/saml", + "sp_entity_id": "https://sp.acme.com/saml", + "sso_url": "https://acme.com/sso", + "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", + "created_at": "2026-04-15T11:00:00Z", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a" + }, + "sso_policy": { + "href": "https://cloud.acquia.com/api/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a/policies/sso" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findIdentityProviderByIdentityProviderId", + "parameters": { + "identityProviderId": "$response.body#/identity_provider_id" + } + }, + "update": { + "operationId": "updateIdentityProviderByIdentityProviderId", + "parameters": { + "identityProviderId": "$response.body#/identity_provider_id" + } + }, + "delete": { + "operationId": "deleteIdentityProviderByIdentityProviderId", + "parameters": { + "identityProviderId": "$response.body#/identity_provider_id" + } + }, + "enable_sso_policy": { + "operationId": "enableIdentityProviderSSOPolicyByIdentityProviderId", + "parameters": { + "identityProviderId": "$response.body#/identity_provider_id" + } + }, + "disable_sso_policy": { + "operationId": "disableIdentityProviderSSOPolicyByIdentityProviderId", + "parameters": { + "identityProviderId": "$response.body#/identity_provider_id" + } + } + } + }, + "Federated_Authentication_API_IdentityProviderCollection": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "identity_provider_id": { + "type": "string", + "description": "Unique identifier for the identity provider." + }, + "label": { + "type": "string", + "description": "The name of the Identity Provider." + }, + "subscription_id": { + "type": "string", + "description": "Unique identifier for the subscription that the Identity Provider belongs to." + }, + "idp_entity_id": { + "type": "string", + "format": "uri", + "description": "The Identity Provider Entity ID." + }, + "sp_entity_id": { + "type": "string", + "format": "uri", + "description": "The Service Provider Entity ID." + }, + "sso_url": { + "type": "string", + "format": "uri", + "description": "The Single Sign-On URL for the Identity Provider." + }, + "certificate": { + "type": "string", + "description": "The X.509 certificate used for SAML authentication." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the Identity Provider was created." + } + }, + "required": [ + "identity_provider_id", + "label", + "subscription_id", + "idp_entity_id", + "sp_entity_id", + "sso_url", + "certificate", + "created_at" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "examples": { + "identity_provider_response": { + "summary": "Identity provider collection with pagination", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2&offset=2" + }, + "limit": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?offset=2{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2&offset=2{&filter}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2&offset=2{&sort}", + "templated": true + }, + "prev": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2&offset=0" + }, + "next": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?offset=4&limit=2" + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "identity_provider_id": "908914ec-2354-4fb1-9298-637247eccc3a", + "label": "Acme Corporation Azure AD", + "subscription_id": "sub-123", + "idp_entity_id": "https://idp.acme.com/saml", + "sp_entity_id": "https://sp.acme.com/saml", + "sso_url": "https://acme.com/sso", + "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", + "created_at": "2026-04-15T11:00:00Z", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a" + }, + "sso_policy": { + "href": "https://cloud.acquia.com/api/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a/policies/sso" + } + } + }, + { + "identity_provider_id": "123456ec-2354-4fb1-9298-637247eccc3b", + "label": "Acme Research Ping Identity", + "subscription_id": "sub-123", + "idp_entity_id": "https://idp-research.acme.com/saml", + "sp_entity_id": "https://sp-research.acme.com/saml", + "sso_url": "https://research.acme.com/sso", + "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", + "created_at": "2026-04-20T14:20:00Z", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/identity-providers/123456ec-2354-4fb1-9298-637247eccc3b" + }, + "sso_policy": { + "href": "https://cloud.acquia.com/api/identity-providers/123456ec-2354-4fb1-9298-637247eccc3b/policies/sso" + } + } + } + ] + } + } + } + } + } + } + }, + "Federated_Authentication_API_SsoDomain": { + "description": "OK. The `_links` object always contains `self`. Additional links are state-conditional: `verify` is present when `health.code` is `202` or `404` (POST it to initiate or retry DNS TXT record verification); `identity_providers` is present when the domain is referenced by one or more Identity Provider policies (follows to a filtered list of those IdPs; when present the domain cannot be deleted — remove it from all policies first).", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "domain_id": { + "type": "string", + "description": "Unique identifier for the domain." + }, + "domain": { + "type": "string", + "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", + "description": "The domain name (e.g., \"acme.com\")." + }, + "subscription_id": { + "type": "string", + "description": "Unique identifier for the subscription that the domain belongs to." + }, + "health": { + "type": "object", + "description": "The overall verification health of the domain. Uses the same code semantics as the platform email domain-verification system: `200` verified, `202` verification pending or in progress, `404` DNS record not found or could not be validated.", + "properties": { + "code": { + "type": "string", + "enum": [ + "200", + "202", + "404" + ], + "description": "Machine-readable verification status code. `200` — verified. `202` — verification pending or in progress; retry after propagation. `404` — DNS TXT record not found or does not match expected value." + }, + "summary": { + "type": "string", + "description": "Short human-readable label for the verification state (e.g., \"Verified\", \"Verification pending\", \"Missing DNS record\")." + }, + "details": { + "type": "string", + "description": "Actionable explanation of the current state. For `404`, describes what was checked and what the customer should do next." + } + }, + "required": [ + "code", + "summary", + "details" + ] + }, + "verification_record": { + "type": "object", + "description": "DNS TXT record the customer must publish to verify domain ownership.", + "properties": { + "type": { + "type": "string", + "const": "TXT", + "description": "DNS record type." + }, + "host": { + "type": "string", + "description": "DNS record host name." + }, + "value": { + "type": "string", + "description": "Expected DNS record value." + }, + "health": { + "type": "object", + "description": "Verification health specific to this DNS record. Anchors the failure reason to the exact record the customer needs to fix, matching the per-record health pattern used in platform email domain verification.", + "properties": { + "code": { + "type": "string", + "enum": [ + "200", + "202", + "404" + ], + "description": "`200` — record found and value matches. `202` — check in progress. `404` — record not found or value does not match." + }, + "summary": { + "type": "string", + "description": "Short human-readable label for this record's verification state." + }, + "details": { + "type": "string", + "description": "Actionable explanation; for `404`, states what was checked and what to fix." + } + }, + "required": [ + "code", + "summary", + "details" + ] + } + }, + "required": [ + "type", + "host", + "value", + "health" + ] + }, + "verified_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the domain was successfully verified. Present only when `health.code` is `200`." + } + }, + "required": [ + "domain_id", + "domain", + "subscription_id", + "health", + "verification_record" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "examples": { + "pending_verification": { + "summary": "Domain awaiting DNS verification", + "description": "A newly created domain whose DNS TXT record has not yet been confirmed. `health.code` is `202`; the `verify` link is present so the client can trigger or retry the check. `identity_providers` is absent because no policy can reference an unverified domain.", + "value": { + "domain_id": "dom-789", + "domain": "acme.corp", + "subscription_id": "sub-123", + "health": { + "code": "202", + "summary": "Verification pending", + "details": "Acquia is waiting to confirm the DNS TXT record. Ensure the record has been published and allow time for DNS propagation, then retry verification." + }, + "verification_record": { + "type": "TXT", + "host": "_acquia-challenge.acme.corp", + "value": "xyz789abc123", + "health": { + "code": "202", + "summary": "Check in progress", + "details": "The TXT record check has not yet completed." + } + }, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sso-domains/dom-789" + }, + "verify": { + "href": "https://cloud.acquia.com/api/sso-domains/dom-789/actions/verify" + } + } + } + }, + "failed_verification": { + "summary": "Domain verification failed — DNS record not found", + "description": "A domain whose TXT record could not be found. `health.code` is `404`; `details` names the exact record to check. The `verify` link is present so the client can retry after fixing the DNS entry.", + "value": { + "domain_id": "dom-789", + "domain": "acme.corp", + "subscription_id": "sub-123", + "health": { + "code": "404", + "summary": "Missing DNS record", + "details": "Acquia could not verify the presence of the required TXT DNS record at _acquia-challenge.acme.corp. Ensure the record is published with the correct value and retry verification." + }, + "verification_record": { + "type": "TXT", + "host": "_acquia-challenge.acme.corp", + "value": "xyz789abc123", + "health": { + "code": "404", + "summary": "Missing DNS record", + "details": "The TXT record at _acquia-challenge.acme.corp was not found or does not match the expected value xyz789abc123." + } + }, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sso-domains/dom-789" + }, + "verify": { + "href": "https://cloud.acquia.com/api/sso-domains/dom-789/actions/verify" + } + } + } + }, + "verified_in_use": { + "summary": "Verified domain referenced by an Identity Provider policy", + "description": "A verified domain enforced by at least one Identity Provider policy. `health.code` is `200`; `verify` is absent; `identity_providers` is present. A DELETE on this domain will return 409 until the domain is removed from all policies.", + "value": { + "domain_id": "dom-456", + "domain": "acme.com", + "subscription_id": "sub-123", + "health": { + "code": "200", + "summary": "Verified", + "details": "The DNS TXT record has been confirmed and the domain is verified." + }, + "verification_record": { + "type": "TXT", + "host": "_acquia-challenge.acme.com", + "value": "abc123def456", + "health": { + "code": "200", + "summary": "Verified", + "details": "The TXT record at _acquia-challenge.acme.com matches the expected value." + } + }, + "verified_at": "2026-04-15T10:30:00Z", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sso-domains/dom-456" + }, + "identity_providers": { + "href": "https://cloud.acquia.com/api/identity-providers?filter=domain_id%3Ddom-456" + } + } + } + } + } + } + }, + "links": { + "self": { + "operationId": "findSsoDomainBySsoDomainId", + "parameters": { + "domainId": "$response.body#/domain_id" + } + }, + "delete": { + "operationId": "deleteSsoDomainBySsoDomainId", + "parameters": { + "domainId": "$response.body#/domain_id" + } + }, + "verify": { + "operationId": "verifySsoDomainBySsoDomainId", + "parameters": { + "domainId": "$response.body#/domain_id" + } + } + } + }, + "Federated_Authentication_API_SsoDomainCollection": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "domain_id": { + "type": "string", + "description": "Unique identifier for the domain." + }, + "domain": { + "type": "string", + "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", + "description": "The domain name (e.g., \"acme.com\")." + }, + "subscription_id": { + "type": "string", + "description": "Unique identifier for the subscription that the domain belongs to." + }, + "health": { + "type": "object", + "description": "The overall verification health of the domain. Uses the same code semantics as the platform email domain-verification system: `200` verified, `202` verification pending or in progress, `404` DNS record not found or could not be validated.", + "properties": { + "code": { + "type": "string", + "enum": [ + "200", + "202", + "404" + ], + "description": "Machine-readable verification status code. `200` — verified. `202` — verification pending or in progress; retry after propagation. `404` — DNS TXT record not found or does not match expected value." + }, + "summary": { + "type": "string", + "description": "Short human-readable label for the verification state (e.g., \"Verified\", \"Verification pending\", \"Missing DNS record\")." + }, + "details": { + "type": "string", + "description": "Actionable explanation of the current state. For `404`, describes what was checked and what the customer should do next." + } + }, + "required": [ + "code", + "summary", + "details" + ] + }, + "verification_record": { + "type": "object", + "description": "DNS TXT record the customer must publish to verify domain ownership.", + "properties": { + "type": { + "type": "string", + "const": "TXT", + "description": "DNS record type." + }, + "host": { + "type": "string", + "description": "DNS record host name." + }, + "value": { + "type": "string", + "description": "Expected DNS record value." + }, + "health": { + "type": "object", + "description": "Verification health specific to this DNS record. Anchors the failure reason to the exact record the customer needs to fix, matching the per-record health pattern used in platform email domain verification.", + "properties": { + "code": { + "type": "string", + "enum": [ + "200", + "202", + "404" + ], + "description": "`200` — record found and value matches. `202` — check in progress. `404` — record not found or value does not match." + }, + "summary": { + "type": "string", + "description": "Short human-readable label for this record's verification state." + }, + "details": { + "type": "string", + "description": "Actionable explanation; for `404`, states what was checked and what to fix." + } + }, + "required": [ + "code", + "summary", + "details" + ] + } + }, + "required": [ + "type", + "host", + "value", + "health" + ] + }, + "verified_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the domain was successfully verified. Present only when `health.code` is `200`." + } + }, + "required": [ + "domain_id", + "domain", + "subscription_id", + "health", + "verification_record" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "examples": { + "domain_response": { + "summary": "Domain collection with pagination", + "description": "Two domains in different states: one verified and in use by a policy (carries `identity_providers` link), one pending verification (carries `verify` link).", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?limit=2&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?limit=2{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?limit=2&offset=0{&filter}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?limit=2&offset=0{&sort}", + "templated": true + }, + "next": { + "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?offset=2&limit=2" + } + }, + "count": 2, + "total": 3, + "pagination": { + "total": 3, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "domain_id": "dom-456", + "domain": "acme.com", + "subscription_id": "sub-123", + "health": { + "code": "200", + "summary": "Verified", + "details": "The DNS TXT record has been confirmed and the domain is verified." + }, + "verification_record": { + "type": "TXT", + "host": "_acquia-challenge.acme.com", + "value": "abc123def456", + "health": { + "code": "200", + "summary": "Verified", + "details": "The TXT record at _acquia-challenge.acme.com matches the expected value." + } + }, + "verified_at": "2026-04-15T10:30:00Z", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sso-domains/dom-456" + }, + "identity_providers": { + "href": "https://cloud.acquia.com/api/identity-providers?filter=domain_id%3Ddom-456" + } + } + }, + { + "domain_id": "dom-789", + "domain": "acme.corp", + "subscription_id": "sub-123", + "health": { + "code": "202", + "summary": "Verification pending", + "details": "Acquia is waiting to confirm the DNS TXT record. Ensure the record has been published and allow time for DNS propagation, then retry verification." + }, + "verification_record": { + "type": "TXT", + "host": "_acquia-challenge.acme.corp", + "value": "xyz789abc123", + "health": { + "code": "202", + "summary": "Check in progress", + "details": "The TXT record check has not yet completed." + } + }, + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/sso-domains/dom-789" + }, + "verify": { + "href": "https://cloud.acquia.com/api/sso-domains/dom-789/actions/verify" + } + } + } + ] + } + } + } + } + } + } + }, + "Federated_Authentication_API_ValidationError": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + } + } + }, + "Federated_Authentication_API_UnauthorizedError": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "Federated_Authentication_API_ForbiddenError": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "Federated_Authentication_API_NotFoundError": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "Federated_Authentication_API_InternalServerError": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + }, + "Federated_Authentication_API_InvalidOperationError": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "SSH_Key_Service_API_SshKeyCollection": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + }, + { + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + }, + { + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + }, + { + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering." + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + } + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + }, + { + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting." + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + } + } + } + ] + }, + { + "type": "object", + "description": "A collection of SSH keys.", + "properties": { + "_embedded": { + "type": "object", + "description": "A collection of SSH keys matching the request parameters.", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "required": [ + "id", + "label", + "public_key", + "fingerprint", + "created_at", + "user_id" + ], + "description": "Details an SSH key.", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the SSH key.", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "label": { + "type": "string", + "description": "The human-readable key label." + }, + "public_key": { + "type": "string", + "description": "The public key.", + "minLength": 64 + }, + "fingerprint": { + "type": "string", + "description": "The public key fingerprint.", + "pattern": "^[A-Za-z0-9:+/=.-]+$" + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "The key creation date." + }, + "user_id": { + "type": "string", + "description": "The unique identifier of the user who owns this SSH key.", + "pattern": "^[a-zA-Z0-9-]+$" + } + } + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "examples": { + "ssh_keys": { + "summary": "SSH key collection", + "value": { + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/ssh-keys?limit=2&offset=0" + }, + "limit": { + "href": "https://cloud.acquia.com/api/ssh-keys?offset=0{&limit}", + "templated": true + }, + "offset": { + "href": "https://cloud.acquia.com/api/ssh-keys?limit=2{&offset}", + "templated": true + }, + "filter": { + "href": "https://cloud.acquia.com/api/ssh-keys?limit=2&offset=0{&filter}", + "templated": true + }, + "sort": { + "href": "https://cloud.acquia.com/api/ssh-keys?limit=2&offset=0{&sort}", + "templated": true + }, + "next": { + "href": "https://cloud.acquia.com/api/ssh-keys?limit=2&offset=2" + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "1acbb1a5-e864-4b8e-a3f9-b1ed462afd25", + "label": "primary", + "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQChwPHzTTDKDpSbpa2+d22LcbQmsw92eLsUK3Fmei1fiGDkd34NsYCN8m7lsi3NbvdMS83CtPQPWiCveYPzFs1/hHc4PYj8opD2CNnr5iWVVbyaulCYHCgVv4aB/ojcexg8q483A4xJeF15TiCr/gu34rK6ucTvC/tn/rCwJBudczvEwt0klqYwv8Cl/ytaQboSuem5KgSjO3lMrb6CWtfSNhE43ZOw+UBFBqxIninN868vGMkIv9VY34Pwj54rPn/ItQd6Ef4B0KHHaGmzK0vfP+AK7FxNMoHnj3iYT33KZNqtDozdn5tYyH/bThPebEtgqUn+/w5l6wZIC/8zzvls/127ngHk+jNa0PlNyS2TxhPUK4NaPHIEnnrlp07JEYC4ImcBjaYCWAdcTcUkcJjwZQkN4bGmyO9cjICH98SdLD/HxqzTHeaYDbAX/Hu9HfaBb5dXLWsjw3Xc6hoVnUUZbMQyfgb0KgxDLh92eNGxJkpZiL0VDNOWCxDWsNpzwhLNkLqCvI6lyxiLaUzvJAk6dPaRhExmCbU1lDO2eR0FdSwC1TEhJOT9eDIK1r2hztZKs2oa5FNFfB/IFHVWasVFC9N2h/r/egB5zsRxC9MqBLRBq95NBxaRSFng6ML5WZSw41Qi4C/JWVm89rdj2WqScDHYyAdwyyppWU4T5c9Fmw== example@example.com", + "fingerprint": "SHA256:7a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8g9h0i1j2k3l4m5n6o7p8q9r0s1", + "created_at": "2024-10-01T12:30:00Z", + "user_id": "a47ac10b-58cc-4372-a567-0e02b2c3d479", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/ssh-keys/1acbb1a5-e864-4b8e-a3f9-b1ed462afd25" + } + } + }, + { + "id": "2bcbb1a5-e864-4b8e-a3f9-b1ed462afd26", + "label": "backup", + "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFf2T1I1d8T1B9Q1b8pS6m2xvY3i5q8sNnU5oQwY5vS9 example@example.com", + "fingerprint": "SHA256:9b8c7d6e5f4a3b2c1d0e9f8a7b6c5d4e3f2a1b0c9d8e7f6a5b4c3d2e1f0a9b8", + "created_at": "2024-10-02T09:15:00Z", + "user_id": "b58bd21c-69dd-5483-b678-1f13c3d4e580", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/ssh-keys/2bcbb1a5-e864-4b8e-a3f9-b1ed462afd26" + } + } + } + ] + } + } + } + } + } + } + }, + "SSH_Key_Service_API_SshKey": { + "description": "OK", + "content": { + "application/hal+json": { + "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "id", + "label", + "public_key", + "fingerprint", + "created_at", + "user_id" + ], + "description": "Details an SSH key.", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the SSH key.", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "label": { + "type": "string", + "description": "The human-readable key label." + }, + "public_key": { + "type": "string", + "description": "The public key.", + "minLength": 64 + }, + "fingerprint": { + "type": "string", + "description": "The public key fingerprint.", + "pattern": "^[A-Za-z0-9:+/=.-]+$" + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "The key creation date." + }, + "user_id": { + "type": "string", + "description": "The unique identifier of the user who owns this SSH key.", + "pattern": "^[a-zA-Z0-9-]+$" + } + } + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "example": { + "id": "1acbb1a5-e864-4b8e-a3f9-b1ed462afd25", + "label": "primary", + "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQChwPHzTTDKDpSbpa2+d22LcbQmsw92eLsUK3Fmei1fiGDkd34NsYCN8m7lsi3NbvdMS83CtPQPWiCveYPzFs1/hHc4PYj8opD2CNnr5iWVVbyaulCYHCgVv4aB/ojcexg8q483A4xJeF15TiCr/gu34rK6ucTvC/tn/rCwJBudczvEwt0klqYwv8Cl/ytaQboSuem5KgSjO3lMrb6CWtfSNhE43ZOw+UBFBqxIninN868vGMkIv9VY34Pwj54rPn/ItQd6Ef4B0KHHaGmzK0vfP+AK7FxNMoHnj3iYT33KZNqtDozdn5tYyH/bThPebEtgqUn+/w5l6wZIC/8zzvls/127ngHk+jNa0PlNyS2TxhPUK4NaPHIEnnrlp07JEYC4ImcBjaYCWAdcTcUkcJjwZQkN4bGmyO9cjICH98SdLD/HxqzTHeaYDbAX/Hu9HfaBb5dXLWsjw3Xc6hoVnUUZbMQyfgb0KgxDLh92eNGxJkpZiL0VDNOWCxDWsNpzwhLNkLqCvI6lyxiLaUzvJAk6dPaRhExmCbU1lDO2eR0FdSwC1TEhJOT9eDIK1r2hztZKs2oa5FNFfB/IFHVWasVFC9N2h/r/egB5zsRxC9MqBLRBq95NBxaRSFng6ML5WZSw41Qi4C/JWVm89rdj2WqScDHYyAdwyyppWU4T5c9Fmw== example@example.com", + "fingerprint": "SHA256:7a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8g9h0i1j2k3l4m5n6o7p8q9r0s1", + "created_at": "2024-10-01T12:30:00Z", + "user_id": "a47ac10b-58cc-4372-a567-0e02b2c3d479", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/ssh-keys/1acbb1a5-e864-4b8e-a3f9-b1ed462afd25" + } + } + } + } + }, + "links": { + "self": { + "operationId": "findSshKeyBySshKeyId", + "parameters": { + "sshKeyId": "$request.path.sshKeyId" + } + } + } + }, + "SSH_Key_Service_API_UnauthorizedError": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "error", + "message" + ], + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "string", + "description": "The long description for the returned error." + } + } + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "unauthorized", + "message": "You do not have permission to access this resource." + } + } + } + }, + "SSH_Key_Service_API_ForbiddenError": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "error", + "message" + ], + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "string", + "description": "The long description for the returned error." + } + } + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "forbidden", + "message": "You do not have permission to perform this action." + } + } + } + }, + "SSH_Key_Service_API_NotFoundError": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "error", + "message" + ], + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "string", + "description": "The long description for the returned error." + } + } + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "not_found", + "message": "The resource you are trying to access does not exist, or you do not have access to it." + } + } + } + }, + "SSH_Key_Service_API_ValidationError": { + "description": "Bad Request - Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "error", + "message" + ], + "description": "A validation error.", + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "object", + "description": "The validation error message keyed by its field or group name.", + "additionalProperties": { + "type": "string" + } + } + } + }, + "example": { + "error": "validation_failed", + "message": { + "field_name": "This field is required." + } + } + } + } + }, + "SSH_Key_Service_API_InvalidOperationError": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "error", + "message" + ], + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "string", + "description": "The long description for the returned error." + } + } + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "conflict", + "message": "The requested operation is invalid or cannot be completed." + } + } + } + }, + "SSH_Key_Service_API_InternalServerError": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "error", + "message" + ], + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "string", + "description": "The long description for the returned error." + } + } + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "example": { + "error": "system", + "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + } + } + } + }, + "requestBodies": { + "Failover_Service_API_CreateFailoverGroupRequest": { + "description": "Create failover group request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the failover group.", + "example": "Primary Failover Group" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + "examples": { + "create": { + "summary": "Creates a new failover group", + "description": "Creates a new failover group with the specified name", + "value": { + "name": "Primary Failover Group" + } + } + } + } + } + }, + "Failover_Service_API_SaveMultiRegionFailoverRequest": { + "description": "Multi-region failover enable request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "region": { + "type": "string", + "description": "The region to enable multi-region failover for.", + "example": "us-east-1" + } + }, + "required": [ + "region" + ], + "additionalProperties": false, + "minProperties": 1 + }, + "examples": { + "enable": { + "summary": "Enables multi-region failover for a region", + "description": "Enables multi-region failover for the specified region", + "value": { + "region": "us-east-1" + } + } + } + } + } + }, + "Codebase_Service_API_CreateCodebaseRequest": { + "description": "Codebase creation request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "codebase_id": { + "type": "string", + "format": "uuid", + "description": "Client-supplied UUID for the new codebase" + }, + "label": { + "type": "string", + "description": "Human-readable label for the codebase" + }, + "region": { + "type": "string", + "description": "AWS region where the codebase will be created" + } + }, + "required": [ + "codebase_id", + "label", + "region" + ], + "additionalProperties": false + }, + "examples": { + "create": { + "summary": "Create a codebase", + "description": "Creates a new codebase for a subscription", + "value": { + "codebase_id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", + "label": "my-codebase", + "region": "us-east-1" + } + } + } + } + } + }, + "Codebase_Service_API_CreateDomainPatternRequest": { + "description": "Create domain pattern request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "pattern": { + "type": "string", + "maxLength": 455, + "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", + "description": "The domain pattern to apply to all associated sites in this codebase, optionally followed by a single path segment. Both [site-name] and [environment-name] tokens are mandatory. Domain ≤ 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per codebase) are enforced at the service layer.\n" + } + }, + "required": [ + "pattern" + ], + "additionalProperties": false + }, + "examples": { + "create_domain_pattern": { + "summary": "Create a domain pattern", + "value": { + "pattern": "[site-name].[environment-name].acme.com" + } + } + } + } + } + }, + "Codebase_Service_API_UpdateCodebaseRequest": { + "description": "Codebase update request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "Human-readable label for the codebase" + }, + "description": { + "type": "string", + "description": "Description of the codebase" + } + }, + "minProperties": 1, + "additionalProperties": false + }, + "examples": { + "update": { + "summary": "Update a codebase", + "description": "Updates an existing codebase's label and description", + "value": { + "label": "updated-codebase-label", + "description": "Updated codebase description" + } + } + } + } + } + }, + "Codebase_Service_API_UpdateDomainPatternRequest": { + "description": "Update domain pattern request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "pattern": { + "type": "string", + "maxLength": 455, + "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", + "description": "The updated domain pattern to apply to all associated sites in this codebase, optionally followed by a single path segment. Both [site-name] and [environment-name] tokens are mandatory. Domain ≤ 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per codebase) are enforced at the service layer.\n" + } + }, + "required": [ + "pattern" + ], + "additionalProperties": false, + "minProperties": 1 + }, + "examples": { + "update_domain_pattern": { + "summary": "Update a domain pattern", + "value": { + "pattern": "[site-name].[environment-name].acme.com" + } + } + } + } + } + }, + "Tag_API_SaveTagRequest": { + "description": "Tag create/update request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "color": { + "type": "string", + "pattern": "^#((?:[a-f0-9]{3}){1,2})$", + "description": "A color for the specified tag" + } + }, + "additionalProperties": false, + "minProperties": 1 + }, + "examples": { + "save": { + "summary": "Saves a tag", + "description": "Saves a tag with specified color", + "value": { + "color": "#000000" + } + } + } + } + } + }, + "Site_Service_API_DuplicateSiteRequest": { + "description": "Site duplication request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "environment_mapping": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-]+$", + "description": "Environment mapping in the format 'sourceEnvId:targetEnvId'" + }, + "description": "Array of environment mappings. You must provide exactly one environment mapping. Each entry maps a source environment ID to a target environment ID, separated by a colon.\n", + "minItems": 1, + "maxItems": 1, + "example": [ + "0ebce493-9d09-479d-a9a8-138a206fa687:a1b2c3d4-e5f6-7890-abcd-ef1234567890" + ] + }, + "site_name": { + "type": "string", + "description": "Machine name for the duplicated site. Must start with a lowercase letter and contain only lowercase letters and numbers. Maximum 14 characters.\n", + "minLength": 1, + "maxLength": 14, + "pattern": "^[a-z][a-z0-9]*$", + "example": "dupsite" + }, + "site_label": { + "type": "string", + "description": "Human-readable label for the duplicated site. Must only contain letters, numbers, and spaces. Maximum 50 characters.\n", + "minLength": 1, + "maxLength": 50, + "example": "Duplicated Site" + }, + "site_id": { + "type": "string", + "format": "uuid", + "description": "An optional explicit UUID for the new duplicated site. A UUID is generated automatically if omitted.", + "example": "f1a2b3c4-d5e6-7890-abcd-ef1234567890" + }, + "hook_argument": { + "type": "string", + "description": "Optional hook argument to pass to the duplication process.", + "example": "--verbose" + } + }, + "required": [ + "environment_mapping", + "site_name", + "site_label" + ], + "additionalProperties": false + }, + "examples": { + "duplicate_basic": { + "summary": "Duplicate a site with required fields", + "description": "Duplicates a site with a single environment mapping", + "value": { + "environment_mapping": [ + "0ebce493-9d09-479d-a9a8-138a206fa687:a1b2c3d4-e5f6-7890-abcd-ef1234567890" + ], + "site_name": "dupsite", + "site_label": "Duplicated Site" + } + }, + "duplicate_with_options": { + "summary": "Duplicate a site with all options", + "description": "Duplicates a site specifying a custom site ID and hook argument", + "value": { + "environment_mapping": [ + "0ebce493-9d09-479d-a9a8-138a206fa687:a1b2c3d4-e5f6-7890-abcd-ef1234567890" + ], + "site_name": "duphook", + "site_label": "Dup With Hook", + "site_id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", + "hook_argument": "my-hook-arg" + } + } + } + } + } + }, + "Site_Service_API_CreateSiteRequest": { + "description": "Site creation request body", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", + "minLength": 1, + "maxLength": 14, + "pattern": "^[a-z][a-z0-9]*$", + "example": "mysite" + }, + "label": { + "type": "string", + "description": "The human-readable label for the site.", + "minLength": 1, + "maxLength": 50, + "example": "My Site" + }, + "codebase_id": { + "type": "string", + "description": "The unique identifier of the codebase to associate with this site.", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "a9b8c7d6-e5f4-3210-abcd-ef9876543210" + }, + "site_id": { + "type": "string", + "format": "uuid", + "description": "An optional explicit UUID for the new site. A UUID is generated automatically if omitted.", + "example": "0ebce493-9d09-479d-a9a8-138a206fa687" + }, + "description": { + "type": "string", + "description": "An optional description for the site.", + "maxLength": 512, + "example": "A production site for the marketing team." + } + }, + "required": [ + "name", + "label", + "codebase_id" + ], + "additionalProperties": false + }, + "examples": { + "create_site_full": { + "summary": "Create a new site with all fields", + "value": { + "name": "mysite", + "label": "My Site", + "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", + "site_id": "0ebce493-9d09-479d-a9a8-138a206fa687", + "description": "This is a description of my site." + } + }, + "create_site_minimal": { + "summary": "Create a new site with required fields only", + "value": { + "name": "newsitename", + "label": "New Site Label", + "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210" + } + } + } + } + } + }, + "Site_Service_API_UpdateSiteRequest": { + "description": "Site update request body", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "The new human-readable label for the site.", + "minLength": 1, + "maxLength": 50, + "example": "My Updated Site" + }, + "description": { + "type": "string", + "description": "The new description for the site.", + "maxLength": 512, + "example": "Updated description for this site." + } + }, + "additionalProperties": false, + "minProperties": 1 + }, + "examples": { + "update_label": { + "summary": "Update site label", + "value": { + "label": "My Updated Site" + } + }, + "update_description": { + "summary": "Update site description", + "value": { + "description": "Updated description for this site." + } + }, + "update_both": { + "summary": "Update label and description", + "value": { + "label": "My Updated Site", + "description": "Updated description for this site." + } + } + } + } + } + }, + "CDN_API_ProvisionCdnForDomainRequest": { + "description": "Domain CDN provisioning request body", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "environment_id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "The environment identifier that the domain will be associated with for purging purposes." + } + }, + "additionalProperties": false, + "required": [ + "environment_id" + ], + "minProperties": 1 + }, + "example": { + "environment_id": "0c3f0f5f-5727-4838-9459-2d90ee1cf7c1" + } + } + } + }, + "CDN_API_CreatePurgeRequest": { + "description": "Purge request body", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "resource_type": { + "type": "string", + "description": "The type of resource to purge.", + "enum": [ + "tags", + "urls", + "domains", + "everything" + ] + }, + "values": { + "type": "array", + "description": "List of values to purge based on the resource type.\nRequired when `resource_type` is not `everything`.\n", + "items": { + "type": "string" + }, + "minItems": 1 + } + }, + "additionalProperties": false, + "required": [ + "resource_type" + ], + "minProperties": 1 + }, + "examples": { + "purge_urls": { + "summary": "Purge specific URLs", + "value": { + "resource_type": "urls", + "values": [ + "https://example.com/page1", + "https://example.com/page2" + ] + } + }, + "purge_tags": { + "summary": "Purge by cache tags", + "value": { + "resource_type": "tags", + "values": [ + "product-123", + "category-456" + ] + } + }, + "purge_domains": { + "summary": "Purge entire domains", + "value": { + "resource_type": "domains", + "values": [ + "example.com", + "test.example.org" + ] + } + }, + "purge_everything": { + "summary": "Purge everything", + "value": { + "resource_type": "everything" + } + } + } + } + } + }, + "Environment_Service_API_StartDeploymentRequest": { + "description": "Deployment start request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "run_hooks": { + "type": "boolean", + "description": "Whether to run deployment hooks." + }, + "code_reference": { + "type": "string", + "description": "The code reference (branch or tag) to deploy." + }, + "hooks_argument": { + "type": "string", + "description": "Additional arguments passed to deployment hooks." + } + }, + "required": [ + "run_hooks", + "code_reference" + ], + "additionalProperties": false, + "minProperties": 1 + }, + "examples": { + "start_deployment": { + "summary": "Start a deployment", + "description": "Starts a deployment for the specified environment.", + "value": { + "run_hooks": true, + "code_reference": "release-2025-01-15", + "hooks_argument": "--migrate --clear-cache" + } + } + } + } + } + }, + "Environment_Service_API_UpdateCodeDeployRequest": { + "description": "Code deploy concurrency update request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "concurrency": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "description": "Maximum number of concurrent code deploys allowed for the environment." + } + }, + "required": [ + "concurrency" + ], + "additionalProperties": false, + "minProperties": 1 + }, + "examples": { + "update_concurrency": { + "summary": "Update code deploy concurrency", + "description": "Sets the maximum concurrent code deploys for the environment.", + "value": { + "concurrency": 10 + } + } + } + } + } + }, + "Environment_Service_API_ReorderSiteInstancesRequest": { + "description": "Site instances reorder request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "site_instance_ids": { + "type": "array", + "description": "List of site instance IDs in the desired priority order.", + "items": { + "type": "string", + "description": "Site instance identifier in the format {siteId}.{environmentId} (dot-separated site and environment UUIDs)." + } + } + }, + "required": [ + "site_instance_ids" + ], + "additionalProperties": false, + "minProperties": 1 + }, + "examples": { + "reorder": { + "summary": "Reorder site instances", + "description": "Provides the desired order of site instance IDs for the environment.", + "value": { + "site_instance_ids": [ + "3e8ecbec-ea7c-4260-8414-ef2938c859bc.a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3", + "b1d8e2f8-67c7-5d1e-cbe1-1f7604f77de4.c2e9f3a9-78d8-6e2f-dcf2-2a8715a88ef5", + "d3fa04ba-89e9-4f3a-edf3-3b9826b99fa6.e4ab15cb-90fa-4a4b-fea4-4c0937c00ab7" + ] + } + } + } + } + } + }, + "Environment_Service_API_UpdateEnvironmentRequest": { + "description": "Update environment request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "label": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Human-readable label for the environment." + }, + "description": { + "type": "string", + "minLength": 1, + "maxLength": 512, + "description": "Description for the environment." + }, + "properties": { + "type": "object", + "description": "PHP and server configuration properties for the environment.", + "properties": { + "version": { + "type": "string", + "description": "PHP version (e.g. \"8.3\")." + }, + "apcu": { + "type": "integer", + "description": "APCu memory limit in MB." + }, + "max_execution_time": { + "type": "integer", + "description": "PHP max execution time in seconds." + }, + "memory_limit": { + "type": "integer", + "description": "PHP memory limit in MB." + }, + "opcache": { + "type": "integer", + "description": "OPcache memory limit in MB." + }, + "interned_strings_buffer": { + "type": "integer", + "description": "OPcache interned strings buffer in MB." + }, + "client_max_body_size": { + "type": "integer", + "description": "Nginx client_max_body_size in MB." + }, + "upload_max_filesize": { + "type": "integer", + "description": "PHP upload_max_filesize in MB." + }, + "max_post_size": { + "type": "integer", + "description": "PHP post_max_size in MB." + }, + "max_input_vars": { + "type": "integer", + "description": "PHP max_input_vars." + }, + "memcached_limit": { + "type": "integer", + "description": "Memcached memory limit in MB." + }, + "operating_system": { + "type": "string", + "description": "Operating system (e.g. \"focal\")." + }, + "sendmail_path": { + "type": "string", + "description": "Sendmail path configuration." + } + } + } + }, + "additionalProperties": false, + "minProperties": 1 + }, + "examples": { + "update_label": { + "summary": "Update environment label", + "value": { + "label": "Staging", + "description": "Staging environment" + } + }, + "update_properties": { + "summary": "Update PHP properties", + "value": { + "properties": { + "version": "8.3", + "memory_limit": 256 + } + } + } + } + } + } + }, + "Environment_Service_API_ClearCachesRequest": { + "description": "Clear caches request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "domains": { + "type": "array", + "description": "List of domain names to clear caches for.", + "minItems": 1, + "items": { + "type": "string", + "description": "A domain name." + } + } + }, + "required": [ + "domains" + ], + "additionalProperties": false + }, + "examples": { + "clear_caches": { + "summary": "Clear caches for specific domains", + "value": { + "domains": [ + "example.com", + "www.example.com" + ] + } + } + } + } + } + }, + "Environment_Service_API_CreateSiteInstanceRequest": { + "description": "Create site instance request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "site_id": { + "type": "string", + "description": "The UUID of the site to associate with this environment." + }, + "source_environment_id": { + "type": "string", + "description": "The UUID of the environment to copy files and database from during creation." + }, + "source_site_id": { + "type": "string", + "description": "The UUID of the source site to copy files from during creation." + }, + "hook_arguments": { + "type": "string", + "description": "Additional arguments to pass to deployment hooks during creation." + } + }, + "required": [ + "site_id" + ], + "additionalProperties": false + }, + "examples": { + "create": { + "summary": "Associate a site with an environment", + "value": { + "site_id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc" + } + } + } + } + } + }, + "Environment_Service_API_CopySiteInstanceFilesRequest": { + "description": "Copy site instance files request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "source_environment_id": { + "type": "string", + "description": "The UUID of the environment to copy files from." + } + }, + "required": [ + "source_environment_id" + ], + "additionalProperties": false + }, + "examples": { + "copy_files": { + "summary": "Copy files from another environment", + "value": { + "source_environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323" + } + } + } + } + } + }, + "Environment_Service_API_CopySiteInstanceDatabaseRequest": { + "description": "Copy site instance database request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "source_environment_id": { + "type": "string", + "description": "The UUID of the environment to copy the database from." + } + }, + "required": [ + "source_environment_id" + ], + "additionalProperties": false + }, + "examples": { + "copy_database": { + "summary": "Copy database from another environment", + "value": { + "source_environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323" + } + } + } + } + } + }, + "Environment_Service_API_AssociatePrivateNetworkRequest": { + "description": "Associate private network request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "private_network_id": { + "type": "string", + "description": "The identifier of the private network to associate with this environment." + } + }, + "required": [ + "private_network_id" + ], + "additionalProperties": false, + "minProperties": 1 + }, + "examples": { + "associate": { + "summary": "Associate a private network", + "value": { + "private_network_id": "pn-a1b2c3d4-e5f6-7890-abcd-ef1234567890" + } + } + } + } + } + }, + "Environment_Service_API_UpdateTrustedProxiesRequest": { + "description": "Update trusted proxies request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "cidrs_ipv4": { + "type": "array", + "description": "List of trusted IPv4 CIDR blocks.", + "items": { + "type": "string", + "description": "An IPv4 CIDR block (e.g. \"203.0.113.0/24\")." + } + }, + "cidrs_ipv6": { + "type": "array", + "description": "List of trusted IPv6 CIDR blocks.", + "items": { + "type": "string", + "description": "An IPv6 CIDR block (e.g. \"2001:db8::/32\")." + } + }, + "associated_cdns": { + "type": "array", + "description": "List of CDN names to associate with this environment.", + "items": { + "type": "string", + "enum": [ + "akamai", + "cloudflare", + "fastly" + ] + } + } + }, + "additionalProperties": false, + "minProperties": 1 + }, + "examples": { + "update": { + "summary": "Update trusted proxy configuration", + "value": { + "cidrs_ipv4": [ + "203.0.113.0/24" + ], + "cidrs_ipv6": [], + "associated_cdns": [ + "cloudflare" + ] + } + } + } + } + } + }, + "Environment_Service_API_CreateDomainPatternRequest": { + "description": "Create domain pattern request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "pattern": { + "type": "string", + "maxLength": 455, + "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", + "description": "The domain pattern to apply to all associated sites in this environment, optionally followed by a single path segment. The [site-name] token is mandatory; [environment-name] is optional. Domain ≤ 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per environment) are enforced at the service layer.\n", + "example": "[site-name].acme.com" + } + }, + "required": [ + "pattern" + ], + "additionalProperties": false + }, + "examples": { + "create_domain_pattern": { + "summary": "Create a domain pattern", + "value": { + "pattern": "[site-name].acme.com" + } + } + } + } + } + }, + "Environment_Service_API_UpdateDomainPatternRequest": { + "description": "Update domain pattern request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "pattern": { + "type": "string", + "maxLength": 455, + "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", + "description": "The updated domain pattern to apply to all associated sites in this environment, optionally followed by a single path segment. The [site-name] token is mandatory. Domain ≤ 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per environment) are enforced at the service layer.\n" + } + }, + "required": [ + "pattern" + ], + "additionalProperties": false, + "minProperties": 1 + }, + "examples": { + "update_domain_pattern": { + "summary": "Update a domain pattern", + "value": { + "pattern": "[site-name].staging.acme.com" + } + } + } + } + } + }, + "Federated_Authentication_API_CreateSsoDomain": { + "description": "Request body for creating a new domain.", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "type": "string", + "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", + "description": "The domain name to create (e.g., \"acme.com\")." + } + }, + "required": [ + "domain" + ], + "additionalProperties": false + }, + "example": { + "domain": "acme.com" + } + } + } + }, + "Federated_Authentication_API_CreateIdentityProvider": { + "description": "Request body for creating a new Identity Provider.", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "idp_entity_id": { + "type": "string", + "format": "uri", + "description": "The Identity Provider Entity ID." + }, + "label": { + "type": "string", + "description": "The name of the Identity Provider." + }, + "sso_url": { + "type": "string", + "format": "uri", + "description": "The SSO URL for this IdP." + }, + "certificate": { + "type": "string", + "description": "The certificate for this IdP." + } + }, + "required": [ + "label", + "idp_entity_id", + "sso_url", + "certificate" + ], + "additionalProperties": false + }, + "example": { + "label": "Acme Corporation Azure AD", + "idp_entity_id": "https://idp.acme.com/saml", + "sso_url": "https://acme.com/sso", + "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----" + } + } + } + }, + "Federated_Authentication_API_UpdateIdentityProvider": { + "description": "Request body for updating an existing Identity Provider.", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "The name of the Identity Provider." + }, + "certificate": { + "type": "string", + "description": "The X.509 certificate used for SAML authentication." + }, + "sso_url": { + "type": "string", + "format": "uri", + "description": "The Single Sign-On URL for the Identity Provider." + }, + "idp_entity_id": { + "type": "string", + "format": "uri", + "description": "The Identity Provider Entity ID." + } + }, + "additionalProperties": false, + "minProperties": 1 + }, + "example": { + "label": "Updated Acme Corporation Azure AD", + "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", + "sso_url": "https://updatedacme.com/sso", + "idp_entity_id": "https://idp2.acme.com/saml" + } + } + } + }, + "Federated_Authentication_API_CreateSsoPolicy": { + "description": "Request body for creating an SSO policy for an Identity Provider.", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "domain_ids": { + "type": "array", + "description": "List of verified domain IDs to enforce this Identity Provider for.", + "items": { + "type": "string", + "description": "Reference to a verified SSO domain." + } + } + }, + "required": [ + "domain_ids" + ], + "additionalProperties": false + }, + "example": { + "domain_ids": [ + "dom-456", + "dom-789" + ] + } + } + } + }, + "Federated_Authentication_API_UpdateSsoPolicy": { + "description": "Request body for updating an SSO policy for an Identity Provider.", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "domain_ids": { + "type": "array", + "description": "List of verified domain IDs to enforce this Identity Provider for.", + "items": { + "type": "string", + "description": "Reference to a verified SSO domain." + } + } + }, + "required": [ + "domain_ids" + ], + "additionalProperties": false, + "minProperties": 1 + }, + "example": { + "domain_ids": [ + "dom-456" + ] + } + } + } + }, + "Federated_Authentication_API_UpdateSsoPolicyRequest": { + "description": "Request body for updating an SSO policy for an Identity Provider.", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "domain_ids": { + "type": "array", + "description": "List of verified domain IDs to enforce this Identity Provider for.", + "items": { + "type": "string", + "description": "Reference to a verified SSO domain." + } + } + }, + "required": [ + "domain_ids" + ], + "additionalProperties": false, + "minProperties": 1 + }, + "example": { + "domain_ids": [ + "dom-456" + ] + } + } + } + }, + "Federated_Authentication_API_CreateSsoPolicyRequest": { + "description": "Request body for creating an SSO policy for an Identity Provider.", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "domain_ids": { + "type": "array", + "description": "List of verified domain IDs to enforce this Identity Provider for.", + "items": { + "type": "string", + "description": "Reference to a verified SSO domain." + } + } + }, + "required": [ + "domain_ids" + ], + "additionalProperties": false + }, + "example": { + "domain_ids": [ + "dom-456", + "dom-789" + ] + } + } + } + }, + "SSH_Key_Service_API_SshKeyRequestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "label", + "public_key" + ], + "description": "Describes the request body for an SSH key.", + "properties": { + "label": { + "type": "string", + "description": "The SSH key label." + }, + "public_key": { + "type": "string", + "description": "The public key." + } + }, + "additionalProperties": false, + "minProperties": 1 + }, + "example": { + "label": "mykey", + "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQChwPHzTTDKDpSbpa2+d22LcbQmsw92eLsUK3Fmei1fiGDkd34NsYCN8m7lsi3NbvdMS83CtPQPWiCveYPzFs1/hHc4PYj8opD2CNnr5iWVVbyaulCYHCgVv4aB/ojcexg8q483A4xJeF15TiCr/gu34rK6ucTvC/tn/rCwJBudczvEwt0klqYwv8Cl/ytaQboSuem5KgSjO3lMrb6CWtfSNhE43ZOw+UBFBqxIninN868vGMkIv9VY34Pwj54rPn/ItQd6Ef4B0KHHaGmzK0vfP+AK7FxNMoHnj3iYT33KZNqtDozdn5tYyH/bThPebEtgqUn+/w5l6wZIC/8zzvls/127ngHk+jNa0PlNyS2TxhPUK4NaPHIEnnrlp07JEYC4ImcBjaYCWAdcTcUkcJjwZQkN4bGmyO9cjICH98SdLD/HxqzTHeaYDbAX/Hu9HfaBb5dXLWsjw3Xc6hoVnUUZbMQyfgb0KgxDLh92eNGxJkpZiL0VDNOWCxDWsNpzwhLNkLqCvI6lyxiLaUzvJAk6dPaRhExmCbU1lDO2eR0FdSwC1TEhJOT9eDIK1r2hztZKs2oa5FNFfB/IFHVWasVFC9N2h/r/egB5zsRxC9MqBLRBq95NBxaRSFng6ML5WZSw41Qi4C/JWVm89rdj2WqScDHYyAdwyyppWU4T5c9Fmw== example@example.com" + } + } + } + } + }, + "schemas": { + "Failover_Service_API_FailoverGroup": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the failover group.", + "example": "b2c3d4e5-f6a7-8901-bcde-f12345678901" + }, + "name": { + "type": "string", + "description": "The name of the failover group.", + "example": "Primary Failover Group" + }, + "status": { + "type": "string", + "enum": [ + "creating", + "normal", + "failed-over", + "failing-over", + "error", + "deleting", + "deleted" + ], + "description": "The current status of the failover group.", + "example": "normal" + }, + "pairs": { + "type": "array", + "description": "The list of failover pairs belonging to this failover group.", + "items": { + "type": "object", + "properties": { + "service_name": { + "type": "string", + "description": "The name of the service for this failover pair.", + "example": "my-application-service" + }, + "primary_id": { + "type": "string", + "description": "The ID of the primary resource in the failover pair.", + "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + }, + "failover_id": { + "type": "string", + "description": "The UUID of the failover resource in the failover pair.", + "example": "f1e2d3c4-b5a6-7890-fedc-ba9876543210" + } + }, + "required": [ + "service_name", + "primary_id", + "failover_id" + ] + } + } + }, + "required": [ + "id", + "name", + "status", + "pairs" + ] + }, + "Failover_Service_API_FailoverPair": { + "type": "object", + "properties": { + "service_name": { + "type": "string", + "description": "The name of the service for this failover pair.", + "example": "my-application-service" + }, + "primary_id": { + "type": "string", + "description": "The ID of the primary resource in the failover pair.", + "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + }, + "failover_id": { + "type": "string", + "description": "The UUID of the failover resource in the failover pair.", + "example": "f1e2d3c4-b5a6-7890-fedc-ba9876543210" + } + }, + "required": [ + "service_name", + "primary_id", + "failover_id" + ] + }, + "Failover_Service_API_MultiRegionFailoverStatus": { + "type": "object", + "properties": { + "is_enabled": { + "type": "boolean", + "description": "Whether multi-region failover is enabled for the environment." + }, + "failover_group_id": { + "type": "string", + "description": "The identifier of the failover group associated with the environment." + }, + "is_traffic_failed_over": { + "type": "boolean", + "description": "Whether traffic has been failed over to the secondary region." + } + }, + "required": [ + "is_enabled" + ] + }, + "Failover_Service_API_HalLink": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "Failover_Service_API_HalItem": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + "Failover_Service_API_HalCollection": { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "Failover_Service_API_PaginatedCollection": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + "Failover_Service_API_FilteredCollection": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + "Failover_Service_API_ValidationError": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "Failover_Service_API_Error": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + "Failover_Service_API_UnauthorizedError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "Failover_Service_API_ForbiddenError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "Failover_Service_API_InternalServerError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "Failover_Service_API_Message": { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + "Failover_Service_API_InvalidOperationError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "Failover_Service_API_NotFoundError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "Codebase_Service_API_Codebase": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the codebase" + }, + "label": { + "type": "string", + "description": "Human-readable label for the codebase" + }, + "region": { + "type": "string", + "description": "AWS region of the codebase" + }, + "vcs_url": { + "type": "string", + "format": "uri", + "description": "VCS repository URL" + }, + "repository_id": { + "type": "string", + "description": "VCS repository identifier" + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Creation timestamp" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "Last update timestamp" + }, + "description": { + "type": "string", + "description": "Description of the codebase" + }, + "flags": { + "type": "object", + "properties": { + "is_active": { + "type": "boolean", + "description": "Whether the codebase is active" + }, + "is_meo": { + "type": "boolean", + "description": "Whether the codebase is MEO" + } + }, + "required": [ + "is_active", + "is_meo" + ], + "description": "Feature flags for the codebase" + }, + "hash": { + "type": "string", + "description": "Codebase hash" + }, + "applications_total": { + "type": "integer", + "description": "Total number of applications linked to this codebase" + } + }, + "required": [ + "id", + "label", + "region", + "vcs_url", + "repository_id", + "created_at", + "updated_at", + "flags", + "hash", + "applications_total" + ] + }, + "Codebase_Service_API_CodebaseReference": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the reference" + }, + "name": { + "type": "string", + "description": "Name of the git reference" + }, + "type": { + "type": "string", + "enum": [ + "branch", + "tag" + ], + "description": "Type of the git reference" + } + }, + "required": [ + "id", + "name", + "type" + ] + }, + "Codebase_Service_API_DomainPattern": { + "type": "object", + "properties": { + "id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Unique identifier for the domain pattern." + }, + "pattern": { + "type": "string", + "maxLength": 455, + "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", + "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].[environment-name].acme.com/app). Both [site-name] and [environment-name] tokens are mandatory at codebase level. Domain rules (enforced in service layer): ≤ 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] ≤ 14 chars, [environment-name] ≤ 10 chars). One pattern per codebase.\n", + "example": "[site-name].[environment-name].acme.com" + } + }, + "required": [ + "id", + "pattern" + ] + }, + "Codebase_Service_API_HalLink": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "Codebase_Service_API_HalItem": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + "Codebase_Service_API_HalCollection": { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "Codebase_Service_API_PaginatedCollection": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + "Codebase_Service_API_FilteredCollection": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + "Codebase_Service_API_ValidationError": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "Codebase_Service_API_Error": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + "Codebase_Service_API_UnauthorizedError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "Codebase_Service_API_ForbiddenError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "Codebase_Service_API_InternalServerError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "Codebase_Service_API_NotFoundError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "Codebase_Service_API_Message": { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + "Codebase_Service_API_InvalidOperationError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "Codebase_Service_API_SortedCollection": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + "Tag_API_Tag": { + "type": "object", + "properties": { + "name": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "minLength": 1, + "maxLength": 255, + "description": "The name of the tag" + }, + "color": { + "type": "string", + "pattern": "^#((?:[a-f0-9]{3}){1,2})$", + "minLength": 4, + "maxLength": 7, + "description": "The color of the tag" + } + }, + "required": [ + "name", + "color" + ] + }, + "Tag_API_HalLink": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "Tag_API_HalItem": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + "Tag_API_HalCollection": { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "Tag_API_PaginatedCollection": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + "Tag_API_FilteredCollection": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + "Tag_API_SortedCollection": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + "Tag_API_Error": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + "Tag_API_UnauthorizedError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "Tag_API_ForbiddenError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "Tag_API_NotFoundError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "Tag_API_InternalServerError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "Tag_API_Message": { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + "Tag_API_ValidationError": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "Tag_API_InvalidOperationError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "Site_Service_API_Site": { + "type": "object", + "description": "A Site resource", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the site", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "12345678-1234-1234-1234-123456789012" + }, + "name": { + "type": "string", + "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", + "minLength": 1, + "maxLength": 14, + "pattern": "^[a-z][a-z0-9]*$", + "example": "mysite" + }, + "label": { + "type": "string", + "description": "The human-readable label of the site", + "minLength": 1, + "maxLength": 50, + "example": "My Site 1" + }, + "description": { + "type": "string", + "description": "A description of the site", + "maxLength": 512, + "example": "A production site for the marketing team." + }, + "codebase_id": { + "type": "string", + "description": "The unique identifier of the codebase this site belongs to", + "pattern": "^[a-zA-Z0-9-]+$", + "example": "550e8400-e29b-41d4-a716-446655441210" + }, + "status": { + "type": "string", + "description": "The current lifecycle status of the site. ready indicates the site is active and operational. marked-for-deletion indicates the site has been scheduled for deletion and can still be recovered.\n", + "enum": [ + "ready", + "marked-for-deletion" + ], + "example": "ready" + }, + "delete_at": { + "type": "string", + "format": "date-time", + "description": "ISO 8601 datetime indicating when the site is scheduled for deletion. Only present when status is marked-for-deletion.", + "example": "2025-06-15T00:00:00Z" + } + }, + "required": [ + "id", + "name", + "label", + "codebase_id", + "status" + ] + }, + "Site_Service_API_HalLink": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "Site_Service_API_HalItem": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + "Site_Service_API_HalCollection": { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "Site_Service_API_PaginatedCollection": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + "Site_Service_API_FilteredCollection": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + "Site_Service_API_SortedCollection": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + "Site_Service_API_ValidationError": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "Site_Service_API_Error": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + "Site_Service_API_UnauthorizedError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "Site_Service_API_ForbiddenError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "Site_Service_API_InternalServerError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "Site_Service_API_Message": { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + "Site_Service_API_NotFoundError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "Site_Service_API_InvalidOperationError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "CDN_API_Domain": { + "type": "object", + "description": "CDN domain resource.", + "properties": { + "domain": { + "type": "string", + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?(\\.[a-zA-Z]{2,})+$", + "description": "The fully qualified domain name." + }, + "subscription_uuid": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "The unique identifier of the subscription the domain belongs to." + }, + "environment_id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "The environment identifier associated with the domain." + }, + "application_name": { + "type": "string", + "description": "The name of the application associated with the domain." + }, + "status": { + "type": "string", + "description": "The current status of the domain.", + "enum": [ + "connecting-to-edge", + "domain-validation-pending", + "ready-for-dns-repointing", + "configuration-failed", + "configured" + ] + }, + "ownership_validation_cname": { + "type": "string", + "description": "The CNAME record that must be created on the domain's DNS to validate ownership." + }, + "bandwidth_usage_tb": { + "type": "number", + "format": "float", + "description": "The bandwidth usage for the domain in terabytes." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the domain was created." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the domain was last updated." + } + }, + "required": [ + "domain", + "subscription_uuid", + "environment_id", + "status", + "application_name", + "ownership_validation_cname", + "bandwidth_usage_tb", + "created_at", + "updated_at" + ] + }, + "CDN_API_HalLink": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "CDN_API_HalItem": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + "CDN_API_HalCollection": { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "CDN_API_PaginatedCollection": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + "CDN_API_FilteredCollection": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + "CDN_API_SortedCollection": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + "CDN_API_Error": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + "CDN_API_UnauthorizedError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "CDN_API_ForbiddenError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "CDN_API_NotFoundError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "CDN_API_InternalServerError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "CDN_API_Message": { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + "CDN_API_ValidationError": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "CDN_API_InvalidOperationError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "Environment_Service_API_SiteInstance": { + "type": "object", + "description": "Site Instance properties", + "properties": { + "site_id": { + "type": "string", + "description": "The unique identifier of the site", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "environment_id": { + "type": "string", + "description": "The unique identifier of the environment", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "status": { + "type": "string", + "description": "The current status of the site instance", + "enum": [ + "active", + "creating", + "create-failed", + "updating", + "update-failed", + "deleting", + "deleted", + "delete-failed" + ] + }, + "health_status": { + "type": "object", + "description": "Health status information for the site instance", + "properties": { + "code": { + "type": "string", + "description": "Health status code" + }, + "summary": { + "type": "string", + "description": "Summary of the health status" + }, + "details": { + "type": "string", + "description": "Detailed health status information" + } + }, + "required": [ + "code", + "summary", + "details" + ] + }, + "domains": { + "type": "array", + "description": "List of domains associated with the site instance", + "items": { + "type": "string" + } + }, + "deployment_order": { + "type": [ + "integer", + "null" + ], + "description": "The order in which this site instance is deployed relative to others.", + "example": 1 + }, + "delete_at": { + "type": [ + "string", + "null" + ], + "format": "date-time", + "description": "The scheduled deletion date-time for this site instance, if set." + }, + "date_marked_for_deletion": { + "type": [ + "string", + "null" + ], + "format": "date-time", + "description": "The date-time when this site instance was marked for deletion." + }, + "protection_mode": { + "type": [ + "object", + "null" + ], + "description": "The current protection mode of the site instance", + "properties": { + "is_enabled": { + "type": "boolean", + "description": "Indicates whether the protection mode is enabled for the site instance" + }, + "is_inherited": { + "type": "boolean", + "description": "Indicates whether the protection mode is inherited from the environment" + } + }, + "required": [ + "is_enabled", + "is_inherited" + ] + } + }, + "required": [ + "site_id", + "environment_id", + "status", + "health_status", + "domains" + ] + }, + "Environment_Service_API_Environment": { + "type": "object", + "description": "Environment properties", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the environment", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "name": { + "type": "string", + "description": "The machine name of the environment" + }, + "label": { + "type": "string", + "description": "The human-readable label of the environment" + }, + "description": { + "type": "string", + "description": "A description of the environment" + }, + "status": { + "type": "string", + "description": "The current status of the environment", + "enum": [ + "normal", + "allocated", + "launching", + "killed", + "cancelled", + "stopped" + ] + }, + "flags": { + "type": "object", + "description": "Environment configuration flags", + "additionalProperties": { + "type": "boolean" + } + }, + "properties": { + "type": "object", + "description": "Environment PHP and server properties", + "properties": { + "version": { + "type": "string", + "description": "PHP version" + }, + "max_execution_time": { + "type": "integer", + "description": "Maximum execution time in seconds" + }, + "memory_limit": { + "type": "integer", + "description": "Memory limit in MB" + }, + "apcu": { + "type": "integer", + "description": "APCu cache size in MB" + }, + "client_max_body_size": { + "type": "integer", + "description": "Maximum client body size in MB" + }, + "max_input_vars": { + "type": "integer", + "description": "Maximum number of input variables" + }, + "max_post_size": { + "type": "integer", + "description": "Maximum POST size in MB" + }, + "memcached_limit": { + "type": "integer", + "description": "Memcached limit in MB" + }, + "upload_max_filesize": { + "type": "integer", + "description": "Maximum upload file size in MB" + }, + "operating_system": { + "type": "string", + "description": "Operating system codename" + } + } + }, + "reference": { + "type": "string", + "description": "The code reference (branch, tag, or commit) deployed to this environment" + }, + "code_switch_status": { + "type": "string", + "description": "The status of the Switch Code action", + "enum": [ + "IDLE", + "IN_PROGRESS" + ] + }, + "ssh_url": { + "type": "string", + "format": "uri", + "description": "The SSH connection string for accessing this environment" + } + }, + "required": [ + "id", + "name", + "label", + "status", + "flags", + "properties", + "reference", + "code_switch_status", + "ssh_url" + ] + }, + "Environment_Service_API_EmbeddedCodebase": { + "type": "object", + "description": "Embedded codebase resource", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the codebase" + } + }, + "required": [ + "id" + ] + }, + "Environment_Service_API_Deployment": { + "type": "object", + "description": "Deployment properties", + "properties": { + "id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Unique identifier for the deployment." + }, + "environment_id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Identifier of the environment this deployment belongs to." + }, + "status": { + "type": "string", + "description": "Current status of the deployment.", + "enum": [ + "waiting", + "received", + "started", + "done", + "failed", + "error", + "killed" + ] + }, + "code_reference": { + "type": "string", + "description": "The code reference (e.g. branch or tag) deployed." + }, + "run_hooks": { + "type": "boolean", + "description": "Whether deployment hooks were run." + }, + "hooks_argument": { + "type": [ + "string", + "null" + ], + "description": "Additional arguments passed to deployment hooks." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the deployment was created." + }, + "started_at": { + "type": [ + "string", + "null" + ], + "format": "date-time", + "description": "Timestamp when the deployment started." + }, + "completed_at": { + "type": [ + "string", + "null" + ], + "format": "date-time", + "description": "Timestamp when the deployment completed." + }, + "sender_id": { + "type": [ + "string", + "null" + ], + "description": "Identifier of the user or system that initiated the deployment." + }, + "logs": { + "type": [ + "string", + "null" + ], + "description": "Deployment log output." + } + }, + "required": [ + "id", + "environment_id", + "status", + "code_reference", + "run_hooks", + "created_at" + ] + }, + "Environment_Service_API_CodeDeploy": { + "type": "object", + "properties": { + "concurrency": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "description": "Maximum number of concurrent code deploys allowed for the environment." + } + }, + "required": [ + "concurrency" + ] + }, + "Environment_Service_API_Domain": { + "type": "object", + "description": "Domain properties", + "properties": { + "name": { + "type": "string", + "description": "The domain name." + }, + "is_managed": { + "type": "boolean", + "description": "Whether the domain is managed by Acquia." + } + }, + "required": [ + "name", + "is_managed" + ] + }, + "Environment_Service_API_DomainStatus": { + "type": "object", + "description": "Domain DNS status properties", + "properties": { + "hostname": { + "type": "string", + "description": "The domain name." + }, + "site_id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Identifier of the site this domain belongs to." + }, + "environment_id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Identifier of the environment this domain belongs to." + }, + "ip_addresses": { + "type": "array", + "description": "List of IP addresses resolving for this domain.", + "items": { + "type": "string" + } + }, + "cnames": { + "type": "array", + "description": "List of CNAME records resolving for this domain.", + "items": { + "type": "string" + } + }, + "flags": { + "type": "object", + "description": "Status flags for the domain.", + "properties": { + "default": { + "type": "boolean", + "description": "Whether this is the default domain." + }, + "active": { + "type": "boolean", + "description": "Whether the domain is active." + }, + "dns_resolves": { + "type": "boolean", + "description": "Whether the domain DNS resolves correctly." + }, + "acquia_hosted": { + "type": "boolean", + "description": "Whether the domain is hosted on Acquia infrastructure." + } + }, + "required": [ + "default", + "active", + "dns_resolves", + "acquia_hosted" + ] + } + }, + "required": [ + "hostname", + "site_id", + "environment_id", + "ip_addresses", + "cnames", + "flags" + ] + }, + "Environment_Service_API_Database": { + "type": "object", + "description": "Database properties", + "properties": { + "database_name": { + "type": "string", + "description": "The name of the database." + }, + "database_role": { + "type": "string", + "description": "The role of the database (e.g. the site username)." + } + }, + "required": [ + "database_name", + "database_role" + ] + }, + "Environment_Service_API_DatabaseConnection": { + "type": "object", + "description": "Database connection credential properties", + "properties": { + "db_host": { + "type": "string", + "description": "The database host." + }, + "name": { + "type": "string", + "description": "The database name." + }, + "password": { + "type": "string", + "description": "The database password." + }, + "user_name": { + "type": "string", + "description": "The database username." + }, + "ssh_host": { + "type": "string", + "description": "The SSH host for tunneling to the database." + } + }, + "required": [ + "db_host", + "name", + "password", + "user_name", + "ssh_host" + ] + }, + "Environment_Service_API_DatabaseBackup": { + "type": "object", + "description": "Database backup properties", + "properties": { + "id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Unique identifier for the database backup." + }, + "database_id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Identifier of the database this backup belongs to." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the backup was created." + }, + "type": { + "type": "string", + "enum": [ + "DAILY", + "ON_DEMAND" + ], + "description": "The type of backup." + } + }, + "required": [ + "id", + "database_id", + "created_at", + "type" + ] + }, + "Environment_Service_API_EgressIp": { + "type": "object", + "description": "Egress IP properties", + "properties": { + "id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Unique identifier for the egress IP." + }, + "status": { + "type": "string", + "description": "Current status of the egress IP." + }, + "ipv4": { + "type": "string", + "description": "The IPv4 address." + }, + "ipv6": { + "type": [ + "string", + "null" + ], + "description": "The IPv6 address, if assigned." + }, + "flags": { + "type": "object", + "description": "Status flags for the egress IP.", + "additionalProperties": { + "type": "boolean" + } + } + }, + "required": [ + "id", + "status", + "ipv4", + "flags" + ] + }, + "Environment_Service_API_TrustedProxies": { + "type": "object", + "description": "Trusted proxy configuration properties", + "properties": { + "cidrs_ipv4": { + "type": "array", + "description": "List of trusted IPv4 CIDR blocks.", + "items": { + "type": "string" + } + }, + "cidrs_ipv6": { + "type": "array", + "description": "List of trusted IPv6 CIDR blocks.", + "items": { + "type": "string" + } + }, + "associated_cdns": { + "type": "object", + "description": "Map of CDN configurations associated with this environment, keyed by CDN name.", + "additionalProperties": { + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "Display label for the CDN." + }, + "is_enabled": { + "type": "boolean", + "description": "Whether the CDN is enabled." + } + }, + "required": [ + "label", + "is_enabled" + ] + } + } + }, + "required": [ + "cidrs_ipv4", + "cidrs_ipv6", + "associated_cdns" + ] + }, + "Environment_Service_API_PrivateNetwork": { + "type": "object", + "description": "Private network reference properties", + "properties": { + "id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Unique identifier for the private network." + }, + "label": { + "type": [ + "string", + "null" + ], + "description": "Human-readable label for the private network." + } + }, + "required": [ + "id" + ] + }, + "Environment_Service_API_DomainPattern": { + "type": "object", + "properties": { + "id": { + "type": "string", + "pattern": "^[a-zA-Z0-9-]+$", + "description": "Unique identifier for the domain pattern." + }, + "pattern": { + "type": "string", + "maxLength": 455, + "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", + "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].acme.com/app). The [site-name] token is mandatory; [environment-name] is optional at environment level. Domain rules (enforced in service layer): ≤ 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] ≤ 14 chars). One pattern per environment.\n", + "example": "[site-name].acme.com" + } + }, + "required": [ + "id", + "pattern" + ] + }, + "Environment_Service_API_HalLink": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "Environment_Service_API_HalItem": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + "Environment_Service_API_HalCollection": { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "Environment_Service_API_PaginatedCollection": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + "Environment_Service_API_FilteredCollection": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + "Environment_Service_API_ValidationError": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "Environment_Service_API_Error": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + "Environment_Service_API_UnauthorizedError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "Environment_Service_API_ForbiddenError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "Environment_Service_API_NotFoundError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "Environment_Service_API_InternalServerError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "Environment_Service_API_Message": { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + "Environment_Service_API_InvalidOperationError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "Environment_Service_API_SortedCollection": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + "Federated_Authentication_API_IdentityProvider": { + "type": "object", + "properties": { + "identity_provider_id": { + "type": "string", + "description": "Unique identifier for the identity provider." + }, + "label": { + "type": "string", + "description": "The name of the Identity Provider." + }, + "subscription_id": { + "type": "string", + "description": "Unique identifier for the subscription that the Identity Provider belongs to." + }, + "idp_entity_id": { + "type": "string", + "format": "uri", + "description": "The Identity Provider Entity ID." + }, + "sp_entity_id": { + "type": "string", + "format": "uri", + "description": "The Service Provider Entity ID." + }, + "sso_url": { + "type": "string", + "format": "uri", + "description": "The Single Sign-On URL for the Identity Provider." + }, + "certificate": { + "type": "string", + "description": "The X.509 certificate used for SAML authentication." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the Identity Provider was created." + } + }, + "required": [ + "identity_provider_id", + "label", + "subscription_id", + "idp_entity_id", + "sp_entity_id", + "sso_url", + "certificate", + "created_at" + ] + }, + "Federated_Authentication_API_SsoDomain": { + "type": "object", + "properties": { + "domain_id": { + "type": "string", + "description": "Unique identifier for the domain." + }, + "domain": { + "type": "string", + "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", + "description": "The domain name (e.g., \"acme.com\")." + }, + "subscription_id": { + "type": "string", + "description": "Unique identifier for the subscription that the domain belongs to." + }, + "health": { + "type": "object", + "description": "The overall verification health of the domain. Uses the same code semantics as the platform email domain-verification system: `200` verified, `202` verification pending or in progress, `404` DNS record not found or could not be validated.", + "properties": { + "code": { + "type": "string", + "enum": [ + "200", + "202", + "404" + ], + "description": "Machine-readable verification status code. `200` — verified. `202` — verification pending or in progress; retry after propagation. `404` — DNS TXT record not found or does not match expected value." + }, + "summary": { + "type": "string", + "description": "Short human-readable label for the verification state (e.g., \"Verified\", \"Verification pending\", \"Missing DNS record\")." + }, + "details": { + "type": "string", + "description": "Actionable explanation of the current state. For `404`, describes what was checked and what the customer should do next." + } + }, + "required": [ + "code", + "summary", + "details" + ] + }, + "verification_record": { + "type": "object", + "description": "DNS TXT record the customer must publish to verify domain ownership.", + "properties": { + "type": { + "type": "string", + "const": "TXT", + "description": "DNS record type." + }, + "host": { + "type": "string", + "description": "DNS record host name." + }, + "value": { + "type": "string", + "description": "Expected DNS record value." + }, + "health": { + "type": "object", + "description": "Verification health specific to this DNS record. Anchors the failure reason to the exact record the customer needs to fix, matching the per-record health pattern used in platform email domain verification.", + "properties": { + "code": { + "type": "string", + "enum": [ + "200", + "202", + "404" + ], + "description": "`200` — record found and value matches. `202` — check in progress. `404` — record not found or value does not match." + }, + "summary": { + "type": "string", + "description": "Short human-readable label for this record's verification state." + }, + "details": { + "type": "string", + "description": "Actionable explanation; for `404`, states what was checked and what to fix." + } + }, + "required": [ + "code", + "summary", + "details" + ] + } + }, + "required": [ + "type", + "host", + "value", + "health" + ] + }, + "verified_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the domain was successfully verified. Present only when `health.code` is `200`." + } + }, + "required": [ + "domain_id", + "domain", + "subscription_id", + "health", + "verification_record" + ] + }, + "Federated_Authentication_API_SsoPolicy": { + "type": "object", + "description": "SSO policy that enforces an Identity Provider for specific domains.", + "properties": { + "status": { + "type": "string", + "enum": [ + "enabled", + "disabled" + ], + "default": "disabled", + "description": "The status of the SSO policy. When enabled, the policy enforces SSO for the specified domains. Defaults to disabled on creation." + }, + "_embedded": { + "type": "object", + "description": "Embedded resources for the SSO policy.", + "properties": { + "domains": { + "type": "array", + "description": "The SSO domains enforced by this policy, each with a self link back to the authoritative SsoDomain resource.", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "domain_id": { + "type": "string", + "description": "Unique identifier for the domain." + }, + "domain": { + "type": "string", + "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", + "description": "The domain name (e.g., \"acme.com\")." + }, + "subscription_id": { + "type": "string", + "description": "Unique identifier for the subscription that the domain belongs to." + }, + "health": { + "type": "object", + "description": "The overall verification health of the domain. Uses the same code semantics as the platform email domain-verification system: `200` verified, `202` verification pending or in progress, `404` DNS record not found or could not be validated.", + "properties": { + "code": { + "type": "string", + "enum": [ + "200", + "202", + "404" + ], + "description": "Machine-readable verification status code. `200` — verified. `202` — verification pending or in progress; retry after propagation. `404` — DNS TXT record not found or does not match expected value." + }, + "summary": { + "type": "string", + "description": "Short human-readable label for the verification state (e.g., \"Verified\", \"Verification pending\", \"Missing DNS record\")." + }, + "details": { + "type": "string", + "description": "Actionable explanation of the current state. For `404`, describes what was checked and what the customer should do next." + } + }, + "required": [ + "code", + "summary", + "details" + ] + }, + "verification_record": { + "type": "object", + "description": "DNS TXT record the customer must publish to verify domain ownership.", + "properties": { + "type": { + "type": "string", + "const": "TXT", + "description": "DNS record type." + }, + "host": { + "type": "string", + "description": "DNS record host name." + }, + "value": { + "type": "string", + "description": "Expected DNS record value." + }, + "health": { + "type": "object", + "description": "Verification health specific to this DNS record. Anchors the failure reason to the exact record the customer needs to fix, matching the per-record health pattern used in platform email domain verification.", + "properties": { + "code": { + "type": "string", + "enum": [ + "200", + "202", + "404" + ], + "description": "`200` — record found and value matches. `202` — check in progress. `404` — record not found or value does not match." + }, + "summary": { + "type": "string", + "description": "Short human-readable label for this record's verification state." + }, + "details": { + "type": "string", + "description": "Actionable explanation; for `404`, states what was checked and what to fix." + } + }, + "required": [ + "code", + "summary", + "details" + ] + } + }, + "required": [ + "type", + "host", + "value", + "health" + ] + }, + "verified_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the domain was successfully verified. Present only when `health.code` is `200`." + } + }, + "required": [ + "domain_id", + "domain", + "subscription_id", + "health", + "verification_record" + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "domains" + ] + } + }, + "required": [ + "status", + "_embedded" + ] + }, + "Federated_Authentication_API_HalLink": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "Federated_Authentication_API_HalItem": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + "Federated_Authentication_API_HalCollection": { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "Federated_Authentication_API_PaginatedCollection": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 2 + }, + "_embedded": { + "items": [ + { + "id": "456e4567-e89b-11d3-a789-426614174000", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "789e4567-e89b-11d3-a789-426614174000", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" + }, + "next": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 0 + }, + "_embedded": { + "items": [ + { + "id": "111e4567-e89b-11d3-a789-426614174000", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "222e4567-e89b-11d3-a789-426614174000", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" + }, + "prev": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" + }, + "offset": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", + "templated": true + }, + "limit": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", + "templated": true + } + }, + "count": 2, + "total": 6, + "pagination": { + "total": 6, + "limit": 2, + "offset": 4 + }, + "_embedded": { + "items": [ + { + "id": "999e4567-e89b-11d3-a789-426614174000", + "name": "Resource 5", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" + } + } + }, + { + "id": "aaaee567-e89b-11d3-a789-426614174000", + "name": "Resource 6", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" + } + } + } + ] + } + } + ] + }, + "Federated_Authentication_API_FilteredCollection": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" + } + } + } + ] + } + }, + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" + }, + "filter": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "3", + "name": "Resource 3", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" + } + } + }, + { + "id": "4", + "name": "Resource 4", + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" + } + } + } + ] + } + } + ] + }, + "Federated_Authentication_API_SortedCollection": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + }, + { + "type": "object", + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + } + } + } + ], + "examples": [ + { + "_links": { + "self": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" + }, + "sort": { + "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", + "templated": true + } + }, + "_embedded": { + "items": [ + { + "id": "1", + "name": "Resource 1", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/1" + } + } + }, + { + "id": "2", + "name": "Resource 2", + "_links": { + "self": { + "href": "https://cloud.acquia.com/api/resources/2" + } + } + } + ] + } + } + ] + }, + "Federated_Authentication_API_ValidationError": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "field_name": "This field is required.", + "another_field": "This field must be a valid format." + } + } + }, + "required": [ + "error", + "message" + ] + }, + "Federated_Authentication_API_Error": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + "Federated_Authentication_API_UnauthorizedError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "Federated_Authentication_API_ForbiddenError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "Federated_Authentication_API_NotFoundError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "Federated_Authentication_API_InternalServerError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "Federated_Authentication_API_Message": { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ], + "examples": [ + { + "href": "https://cloud.acquia.com/api/resources/1" + }, + { + "href": "https://cloud.acquia.com/api/resources{?offset}", + "templated": true + } + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message content" + } + }, + "required": [ + "message" + ] + } + ] + }, + "Federated_Authentication_API_InvalidOperationError": { + "allOf": [ + { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error", + "message" + ] + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "SSH_Key_Service_API_HalLink": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + }, + "SSH_Key_Service_API_HalItem": { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + "SSH_Key_Service_API_HalCollection": { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "SSH_Key_Service_API_PaginatedCollection": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + }, + { + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + }, + { + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ] + }, + "SSH_Key_Service_API_FilteredCollection": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + }, + { + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering." + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + } + } + } + ] + }, + "SSH_Key_Service_API_SortedCollection": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + }, + { + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting." + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + } + } + } + ] + }, + "SSH_Key_Service_API_SshKey": { + "allOf": [ + { + "type": "object", + "required": [ + "id", + "label", + "public_key", + "fingerprint", + "created_at", + "user_id" + ], + "description": "Details an SSH key.", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the SSH key.", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "label": { + "type": "string", + "description": "The human-readable key label." + }, + "public_key": { + "type": "string", + "description": "The public key.", + "minLength": 64 + }, + "fingerprint": { + "type": "string", + "description": "The public key fingerprint.", + "pattern": "^[A-Za-z0-9:+/=.-]+$" + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "The key creation date." + }, + "user_id": { + "type": "string", + "description": "The unique identifier of the user who owns this SSH key.", + "pattern": "^[a-zA-Z0-9-]+$" + } + } + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "SSH_Key_Service_API_SshKeys": { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "prev": { + "description": "Link to the previous page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + }, + "next": { + "description": "Link to the next page (templated)", + "type": "object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + }, + "offset": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + }, + { + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for offset" + }, + "limit": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + }, + { + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for limit" + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "count": { + "type": "integer", + "description": "The number of items in the current page" + }, + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of items available" + }, + "limit": { + "type": "integer", + "description": "The maximum number of items to retrieve in a single page" + }, + "offset": { + "type": "integer", + "description": "The starting position of the items to retrieve" + } + }, + "required": [ + "total", + "limit", + "offset" + ] + } + }, + "required": [ + "count", + "total", + "pagination" + ] + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "filter": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + }, + { + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for filtering." + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + } + } + } + ] + }, + { + "allOf": [ + { + "allOf": [ + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + }, + { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "description": "Embedded resources for the collection", + "properties": { + "items": { + "type": "array", + "description": "The array of resources in the collection", + "items": { + "type": "object" + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "sort": { + "allOf": [ + { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + }, + { + "properties": { + "templated": { + "type": "boolean", + "enum": [ + true + ] + } + }, + "required": [ + "templated" + ] + } + ], + "description": "Templated link for sorting." + } + }, + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + } + } + } + ] + }, + { + "type": "object", + "description": "A collection of SSH keys.", + "properties": { + "_embedded": { + "type": "object", + "description": "A collection of SSH keys matching the request parameters.", + "properties": { + "items": { + "type": "array", + "items": { + "allOf": [ + { + "type": "object", + "required": [ + "id", + "label", + "public_key", + "fingerprint", + "created_at", + "user_id" + ], + "description": "Details an SSH key.", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the SSH key.", + "pattern": "^[a-zA-Z0-9-]+$" + }, + "label": { + "type": "string", + "description": "The human-readable key label." + }, + "public_key": { + "type": "string", + "description": "The public key.", + "minLength": 64 + }, + "fingerprint": { + "type": "string", + "description": "The public key fingerprint.", + "pattern": "^[A-Za-z0-9:+/=.-]+$" + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "The key creation date." + }, + "user_id": { + "type": "string", + "description": "The unique identifier of the user who owns this SSH key.", + "pattern": "^[a-zA-Z0-9-]+$" + } + } + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + } + } + }, + "required": [ + "items" + ] + } + }, + "required": [ + "_embedded" + ] + } + ] + }, + "SSH_Key_Service_API_Message": { + "allOf": [ + { + "type": "object", + "required": [ + "message" + ], + "properties": { + "message": { + "type": "string", + "description": "The human-friendly confirmation of the operation." + } + } + }, + { + "type": "object", + "properties": { + "_links": { + "type": "object", + "description": "HAL links for the resource", + "properties": { + "self": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "required": [ + "self" + ], + "additionalProperties": { + "type": "object", + "description": "HAL link object", + "properties": { + "href": { + "type": "string", + "anyOf": [ + { + "format": "uri" + }, + { + "format": "uri-template" + } + ], + "description": "The target URI of the link (can be a URI or URI template)" + }, + "templated": { + "type": "boolean", + "description": "Whether the link is a URI template" + }, + "type": { + "type": "string", + "description": "Hint about the media type expected when dereferencing the target resource" + }, + "deprecation": { + "type": "string", + "description": "A URL to a resource that provides deprecation information" + }, + "name": { + "type": "string", + "description": "A secondary key for selecting links" + }, + "profile": { + "type": "string", + "description": "A URI that hints about the profile of the target resource" + }, + "title": { + "type": "string", + "description": "A human-readable identifier for the link" + }, + "hreflang": { + "type": "string", + "description": "The language of the target resource" + } + }, + "required": [ + "href" + ] + } + }, + "_embedded": { + "type": "object", + "description": "Embedded resources (optional)", + "additionalProperties": {} + } + }, + "required": [ + "_links" + ] + } + ] + }, + "SSH_Key_Service_API_ValidationError": { + "type": "object", + "required": [ + "error", + "message" + ], + "description": "A validation error.", + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "object", + "description": "The validation error message keyed by its field or group name.", + "additionalProperties": { + "type": "string" + } + } + } + }, + "SSH_Key_Service_API_Error": { + "type": "object", + "required": [ + "error", + "message" + ], + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "string", + "description": "The long description for the returned error." + } + } + }, + "SSH_Key_Service_API_UnauthorizedError": { + "allOf": [ + { + "type": "object", + "required": [ + "error", + "message" + ], + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "string", + "description": "The long description for the returned error." + } + } + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "unauthorized" + }, + "message": { + "type": "string", + "const": "You do not have permission to access this resource." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "SSH_Key_Service_API_ForbiddenError": { + "allOf": [ + { + "type": "object", + "required": [ + "error", + "message" + ], + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "string", + "description": "The long description for the returned error." + } + } + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "forbidden" + }, + "message": { + "type": "string", + "example": "You do not have permission to perform this action." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "SSH_Key_Service_API_NotFoundError": { + "allOf": [ + { + "type": "object", + "required": [ + "error", + "message" + ], + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "string", + "description": "The long description for the returned error." + } + } + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "not_found" + }, + "message": { + "type": "string", + "example": "The resource you are trying to access does not exist, or you do not have access to it." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "SSH_Key_Service_API_InvalidOperationError": { + "allOf": [ + { + "type": "object", + "required": [ + "error", + "message" + ], + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "string", + "description": "The long description for the returned error." + } + } + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "conflict" + }, + "message": { + "type": "string", + "example": "The requested operation is invalid or cannot be completed." + } + }, + "required": [ + "error", + "message" + ] + } + ] + }, + "SSH_Key_Service_API_InternalServerError": { + "allOf": [ + { + "type": "object", + "required": [ + "error", + "message" + ], + "properties": { + "error": { + "type": "string", + "description": "The error summary." + }, + "message": { + "type": "string", + "description": "The long description for the returned error." + } + } + }, + { + "type": "object", + "properties": { + "error": { + "type": "string", + "const": "system" + }, + "message": { + "type": "string", + "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", + "description": "Standard error message with variable request ID.", + "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." + } + }, + "required": [ + "error", + "message" + ] + } + ] + } + }, + "securitySchemes": { + "Failover_Service_API_BearerAuth": { + "type": "http", + "scheme": "bearer", + "bearerFormat": "JWT", + "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'" + }, + "Codebase_Service_API_BearerAuth": { + "type": "http", + "scheme": "bearer", + "bearerFormat": "JWT", + "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'" + }, + "Tag_API_BearerAuth": { + "type": "http", + "scheme": "bearer", + "bearerFormat": "JWT", + "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'" + }, + "Site_Service_API_BearerAuth": { + "type": "http", + "scheme": "bearer", + "bearerFormat": "JWT", + "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'" + }, + "CDN_API_BearerAuth": { + "type": "http", + "scheme": "bearer", + "bearerFormat": "JWT", + "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'" + }, + "Environment_Service_API_BearerAuth": { + "type": "http", + "scheme": "bearer", + "bearerFormat": "JWT", + "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'" + }, + "Federated_Authentication_API_BearerAuth": { + "type": "http", + "scheme": "bearer", + "bearerFormat": "JWT", + "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'" + }, + "SSH_Key_Service_API_BearerAuth": { + "type": "http", + "scheme": "bearer", + "bearerFormat": "JWT", + "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'" + } + } + }, + "x-tagGroups": [ + { + "name": "Failover Service API", + "tags": [ + "Failover_Service_API_Failover Groups", + "Failover_Service_API_Environments" + ] + }, + { + "name": "Codebase Service API", + "tags": [ + "Codebase_Service_API_Codebases", + "Codebase_Service_API_Codebase References", + "Codebase_Service_API_Domain Patterns" + ] + }, + { + "name": "Tag API", + "tags": [ + "Tag_API_Tags" + ] + }, + { + "name": "Site Service API", + "tags": [ + "Site_Service_API_Sites" + ] + }, + { + "name": "CDN API", + "tags": [ + "CDN_API_CDNs" + ] + }, + { + "name": "Environment Service API", + "tags": [ + "Environment_Service_API_Environments", + "Environment_Service_API_Site Instances", + "Environment_Service_API_Deployments", + "Environment_Service_API_Code Deploys", + "Environment_Service_API_Domains", + "Environment_Service_API_Site Instance Databases", + "Environment_Service_API_Domain Patterns" + ] + }, + { + "name": "Federated Authentication API", + "tags": [ + "Federated_Authentication_API_Domains", + "Federated_Authentication_API_Identity Providers" + ] + }, + { + "name": "SSH Key Service API", + "tags": [ + "SSH_Key_Service_API_SSH Keys" + ] + } + ] +} \ No newline at end of file diff --git a/assets/acquia-v3-spec.version b/assets/acquia-v3-spec.version new file mode 100644 index 00000000..91073df3 --- /dev/null +++ b/assets/acquia-v3-spec.version @@ -0,0 +1 @@ +199d128f014624cedeed3a984d059ee7e064596f diff --git a/bin/acli b/bin/acli index 4fb063b8..6fb64e0c 100755 --- a/bin/acli +++ b/bin/acli @@ -19,6 +19,8 @@ namespace Acquia\Cli; use Acquia\Cli\Command\Acsf\AcsfCommandFactory; use Acquia\Cli\Command\Api\ApiCommandFactory; use Acquia\Cli\Command\Api\ApiCommandHelper; +use Acquia\Cli\Command\Api\ApiV3CommandFactory; +use Acquia\Cli\Command\Api\ApiV3CommandHelper; use Acquia\Cli\Exception\AcquiaCliException; use Acquia\Cli\Helpers\LocalMachineHelper; use Dotenv\Dotenv; @@ -98,11 +100,14 @@ $application = $container->get(Application::class); $output = $container->get(OutputInterface::class); /** @var ApiCommandHelper $helper */ $helper = $container->get(ApiCommandHelper::class); +/** @var ApiV3CommandHelper $v3Helper */ +$v3Helper = $container->get(ApiV3CommandHelper::class); // Register the spec-derived commands lazily so a normal invocation only builds // the single command being run, rather than all ~500 API/ACSF commands. $application->setCommandLoader(new FactoryCommandLoader(array_merge( $helper->getApiCommandFactories(__DIR__ . '/../assets/acquia-spec.json', 'api', $container->get(ApiCommandFactory::class)), - $helper->getApiCommandFactories(__DIR__ . '/../assets/acsf-spec.json', 'acsf', $container->get(AcsfCommandFactory::class)) + $helper->getApiCommandFactories(__DIR__ . '/../assets/acsf-spec.json', 'acsf', $container->get(AcsfCommandFactory::class)), + $v3Helper->getApiCommandFactories(__DIR__ . '/../assets/acquia-v3-spec.json', 'api:v3', $container->get(ApiV3CommandFactory::class)) ))); try { /** @var SelfUpdateManager $selfUpdateManager*/ diff --git a/composer.json b/composer.json index 9eb7b99b..3f651125 100644 --- a/composer.json +++ b/composer.json @@ -119,6 +119,15 @@ "cp var/cx-api-spec/dist/spec/acquia-spec-prerelease.json assets/acquia-spec.json", "git -C var/cx-api-spec rev-parse HEAD > assets/acquia-spec.version" ], + "update-acquia-v3-spec": [ + "rm -rf var/api-specs", + "git clone --depth 1 git@github.com:acquia/api-specs.git var/api-specs", + "npm install --prefix var/api-specs @redocly/cli@latest --no-save --ignore-scripts", + "cd var/api-specs && PATH=$(pwd)/node_modules/.bin:$PATH make bundle", + "cd var/api-specs && npx --yes @redocly/cli@latest bundle --config redocly.bundle.yaml dist/openapi.yaml --dereferenced --ext json -o ../../assets/acquia-v3-spec.json", + "git -C var/api-specs rev-parse HEAD > assets/acquia-v3-spec.version", + "rm -rf var/api-specs" + ], "update-acsf-api-spec": [ "rm -rf gardener", "git clone --single-branch -b master --depth 1 git@github.com:acquia/gardener.git", diff --git a/config/prod/services.yml b/config/prod/services.yml index a1ec1664..4828c3e3 100644 --- a/config/prod/services.yml +++ b/config/prod/services.yml @@ -102,6 +102,26 @@ services: accessTokenExpiry: '@=service("cloud.credentials").getCloudAccessTokenExpiry()' $baseUri: '@=service("cloud.credentials").getBaseUri()' $accountsUri: '@=service("cloud.credentials").getAccountsUri()' + + # v3 (MEO) connector factory — same credentials as v2, different base URI + # (resolved via CloudCredentials::getV3BaseUri() → ACLI_CLOUD_API_V3_BASE_URI, + # falling back to the v2 URI so v3 commands keep working today). + cloud.v3.connector_factory: + class: Acquia\Cli\CloudApi\ConnectorFactory + arguments: + $config: + key: '@=service("cloud.credentials").getCloudKey()' + secret: '@=service("cloud.credentials").getCloudSecret()' + accessToken: '@=service("cloud.credentials").getCloudAccessToken()' + accessTokenExpiry: '@=service("cloud.credentials").getCloudAccessTokenExpiry()' + $baseUri: '@=service("cloud.credentials").getV3BaseUri()' + $accountsUri: '@=service("cloud.credentials").getAccountsUri()' + + Acquia\Cli\CloudApi\V3ClientService: + arguments: + $connectorFactory: '@cloud.v3.connector_factory' + $application: '@Acquia\Cli\Application' + $credentials: '@cloud.credentials' AcquiaCloudApi\Connector\ConnectorInterface: alias: Acquia\Cli\CloudApi\ConnectorFactory AcquiaCloudApi\Connector\Connector: diff --git a/src/CloudApi/CloudCredentials.php b/src/CloudApi/CloudCredentials.php index 98ca7784..7975910a 100644 --- a/src/CloudApi/CloudCredentials.php +++ b/src/CloudApi/CloudCredentials.php @@ -87,6 +87,21 @@ public function getBaseUri(): ?string return null; } + /** + * Base URI for Cloud API v3 (MEO) commands registered under `api:v3:*`. + * Set `ACLI_CLOUD_API_V3_BASE_URI` to point to a specific environment: + * Dev: https://gateway.dev.api.acquia.io/v3 + * Stage: https://staging.api.acquia.com/v3 (tentative) + * Prod: TBD — hardcode here once confirmed + */ + public function getV3BaseUri(): ?string + { + if ($uri = getenv('ACLI_CLOUD_API_V3_BASE_URI')) { + return $uri; + } + return null; + } + public function getAccountsUri(): ?string { if ($uri = getenv('ACLI_CLOUD_API_ACCOUNTS_URI')) { diff --git a/src/CloudApi/V3ClientService.php b/src/CloudApi/V3ClientService.php new file mode 100644 index 00000000..fe3f9f3d --- /dev/null +++ b/src/CloudApi/V3ClientService.php @@ -0,0 +1,21 @@ + */ @@ -99,11 +101,24 @@ protected function interact(InputInterface $input, OutputInterface $output): voi * @throws \JsonException * @throws \AcquiaCloudApi\Exception\ApiErrorException */ + public function setStability(?string $stability): void + { + $this->stability = $stability; + } + + public function getStability(): ?string + { + return $this->stability; + } + protected function execute(InputInterface $input, OutputInterface $output): int { if ($this->getName() === 'api:base') { throw new AcquiaCliException('api:base is not a valid command'); } + if ($this->stability !== null && $this->stability !== 'production') { + $this->io->warning("This command is in {$this->stability} and may change without notice."); + } // Build query from non-null options. $acquiaCloudClient = $this->cloudApiClientService->getClient(); $this->addQueryParamsToClient($input, $acquiaCloudClient); @@ -114,6 +129,13 @@ protected function execute(InputInterface $input, OutputInterface $output): int $acquiaCloudClient->addOption('headers', [ 'Accept' => 'application/hal+json, version=2', ]); + // Some POST endpoints have no request body (e.g. schedule-delete). The + // Cloud Platform API requires both a Content-Type header and a body for + // all POST requests. Guzzle's `json` option satisfies both; passing an + // empty object sends `{}` with Content-Type: application/json. + if (in_array(strtoupper($this->method), ['POST', 'PUT', 'PATCH'], true) && empty($this->postParams)) { + $acquiaCloudClient->addOption('json', new \stdClass()); + } try { if ($this->output->isVeryVerbose()) { diff --git a/src/Command/Api/ApiCommandHelper.php b/src/Command/Api/ApiCommandHelper.php index e00eced0..30f154b6 100644 --- a/src/Command/Api/ApiCommandHelper.php +++ b/src/Command/Api/ApiCommandHelper.php @@ -391,6 +391,42 @@ private function getCloudApiSpec(string $specFilePath): array return $this->loadedSpecs[$specFilePath] = $spec; } + /** + * Extracts the CLI command name declared in an operation schema. + * Override in subclasses to support alternative extension keys. + * + * @phpcs:disable SlevomatCodingStandard.Classes.MethodSpacing,SlevomatCodingStandard.Classes.ClassMemberSpacing + * MUST stay protected so ApiV3CommandHelper can override — do not change to private. + */ + protected function getCliCommandName(array $schema): ?string + { + return $schema['x-cli-name'] ?? null; + } + + /** + * Extracts the stability level from an operation schema, or null if not declared. + * Override in subclasses that use a different spec convention (e.g. v3). + * + * @infection-ignore-all — protected→private is a false positive: PHP still dispatches + * to the child's protected override via $this, so behaviour is identical. + */ + protected function getSchemaStability(array $schema): ?string + { + return null; + } + + /** + * Whether this operation should be excluded from the generated command set. + * Override in subclasses to add audience or channel-based filtering. + * + * @infection-ignore-all — protected→private is a false positive: PHP still dispatches + * to the child's protected override via $this, so behaviour is identical. + */ + protected function shouldSkipOperation(array $schema): bool + { + return false; + } + /** * @return ApiBaseCommand[] */ @@ -400,11 +436,16 @@ private function generateApiCommandsFromSpec(array $acquiaCloudSpec, string $com $skippedApiCommands = $this->getSkippedApiCommands(); foreach ($acquiaCloudSpec['paths'] as $path => $endpoint) { foreach ($endpoint as $method => $schema) { - if (!array_key_exists('x-cli-name', $schema)) { + $cliName = $this->getCliCommandName($schema); + if ($cliName === null) { continue; } - if (in_array($schema['x-cli-name'], $skippedApiCommands, true)) { + if ($this->shouldSkipOperation($schema)) { + continue; + } + + if (in_array($cliName, $skippedApiCommands, true)) { continue; } @@ -698,6 +739,7 @@ public static function restoreRenamedParameter(string $propKey): string */ private function generateApiListCommands(array $apiCommands, string $commandPrefix, CommandFactoryInterface $commandFactory): array { + $prefixDepth = count(explode(':', $commandPrefix)); // List commands (api:{namespace}) are only registered when at least one // sub-command under that namespace exists and is visible. If every // sub-command is hidden (deprecated/pre-release), the namespace list is @@ -706,10 +748,10 @@ private function generateApiListCommands(array $apiCommands, string $commandPref $namespaceHasVisibleCommand = []; foreach ($apiCommands as $apiCommand) { $commandNameParts = explode(':', $apiCommand->getName()); - if (count($commandNameParts) < 3) { + if (!isset($commandNameParts[$prefixDepth])) { continue; } - $namespace = $commandNameParts[1]; + $namespace = $commandNameParts[$prefixDepth]; if (!array_key_exists($namespace, $namespaceHasVisibleCommand)) { $namespaceHasVisibleCommand[$namespace] = false; } diff --git a/src/Command/Api/ApiListCommandBase.php b/src/Command/Api/ApiListCommandBase.php index 2c3d8116..f49caec5 100644 --- a/src/Command/Api/ApiListCommandBase.php +++ b/src/Command/Api/ApiListCommandBase.php @@ -24,9 +24,10 @@ public function setNamespace(string $namespace): void protected function execute(InputInterface $input, OutputInterface $output): int { $command = $this->getApplication()->find('list'); + // @infection-ignore-all — 'command' key is vestigial in Symfony; namespace comparison operator mutations don't affect observable output. $arguments = [ 'command' => 'list', - 'namespace' => 'api', + 'namespace' => $this->namespace, ]; $listInput = new ArrayInput($arguments); diff --git a/src/Command/Api/ApiV3CommandFactory.php b/src/Command/Api/ApiV3CommandFactory.php new file mode 100644 index 00000000..0598a939 --- /dev/null +++ b/src/Command/Api/ApiV3CommandFactory.php @@ -0,0 +1,51 @@ +output->writeln(''); $this->output->writeln('Your IDE is ready!'); + $this->writeIdeLinksToScreen(); } - $this->writeIdeLinksToScreen(); }; $spinnerMessage = 'Waiting for the IDE to be ready. This usually takes 2 - 15 minutes.'; LoopHelper::getLoopy($this->output, $this->io, $spinnerMessage, $checkIdeStatus, $doneCallback); + // @infection-ignore-all — loop runs via React event loop; failure path requires 45-min watchdog, untestable in unit tests (same pattern as LoopHelper). + if (!$ideCreated) { + return Command::FAILURE; + } + return Command::SUCCESS; } diff --git a/src/Command/Self/ListCommand.php b/src/Command/Self/ListCommand.php index 7bd9d7d6..36480f8a 100644 --- a/src/Command/Self/ListCommand.php +++ b/src/Command/Self/ListCommand.php @@ -53,7 +53,8 @@ protected function configure(): void protected function execute(InputInterface $input, OutputInterface $output): int { foreach (['api', 'acsf'] as $prefix) { - if ($input->getArgument('namespace') !== $prefix) { + $requestedNs = (string) $input->getArgument('namespace'); + if ($requestedNs !== $prefix && !str_starts_with($requestedNs, $prefix . ':')) { $allCommands = $this->getApplication()->all(); foreach ($allCommands as $command) { if ( diff --git a/tests/phpunit/src/CloudApi/ClientServiceTest.php b/tests/phpunit/src/CloudApi/ClientServiceTest.php index f7f5103b..3851449d 100644 --- a/tests/phpunit/src/CloudApi/ClientServiceTest.php +++ b/tests/phpunit/src/CloudApi/ClientServiceTest.php @@ -7,6 +7,7 @@ use Acquia\Cli\CloudApi\ClientService; use Acquia\Cli\CloudApi\CloudCredentials; use Acquia\Cli\CloudApi\ConnectorFactory; +use Acquia\Cli\CloudApi\V3ClientService; use Acquia\Cli\DataStore\CloudDataStore; use Acquia\Cli\Tests\TestBase; use PHPUnit\Framework\Attributes\DataProvider; @@ -67,4 +68,17 @@ public function testIsMachineAuthenticated(array $envVars, bool $isAuthenticated $this->assertEquals($isAuthenticated, $clientService->isMachineAuthenticated()); self::unsetEnvVars($envVars); } + + public function testV3ClientServiceConstructs(): void + { + $cloudDatastore = $this->prophet->prophesize(CloudDataStore::class); + $credentials = new CloudCredentials($cloudDatastore->reveal()); + $connectorFactory = new ConnectorFactory([ + 'accessToken' => null, + 'key' => null, + 'secret' => null, + ]); + $v3Service = new V3ClientService($connectorFactory, $this->application, $credentials); + $this->assertFalse($v3Service->isMachineAuthenticated()); + } } diff --git a/tests/phpunit/src/CloudApi/EnvVarAuthenticationTest.php b/tests/phpunit/src/CloudApi/EnvVarAuthenticationTest.php index 36e7b633..ede33ef8 100644 --- a/tests/phpunit/src/CloudApi/EnvVarAuthenticationTest.php +++ b/tests/phpunit/src/CloudApi/EnvVarAuthenticationTest.php @@ -33,4 +33,13 @@ public function testKeyAndSecret(): void self::assertEquals(self::$secret, $this->cloudCredentials->getCloudSecret()); self::assertEquals($this->cloudApiBaseUri, $this->cloudCredentials->getBaseUri()); } + + public function testV3BaseUriFromEnvVar(): void + { + $v3Uri = 'https://gateway.dev.api.acquia.io/v3'; + putenv('ACLI_CLOUD_API_V3_BASE_URI=' . $v3Uri); + self::assertEquals($v3Uri, $this->cloudCredentials->getV3BaseUri()); + putenv('ACLI_CLOUD_API_V3_BASE_URI'); + self::assertNull($this->cloudCredentials->getV3BaseUri()); + } } diff --git a/tests/phpunit/src/Commands/Api/ApiCommandHelperTest.php b/tests/phpunit/src/Commands/Api/ApiCommandHelperTest.php index e699070d..559f9de1 100644 --- a/tests/phpunit/src/Commands/Api/ApiCommandHelperTest.php +++ b/tests/phpunit/src/Commands/Api/ApiCommandHelperTest.php @@ -215,6 +215,33 @@ private function resetPhpArrayAdapterStaticCache(): void $property->setValue(null, []); } + /** + * Two-segment prefix (api:v3) must produce api:v3:{namespace} list commands, + * not api:v3:v3 (the bug caused by hardcoding $commandNameParts[1]). + */ + public function testTwoSegmentPrefixProducesCorrectNamespaceListCommands(): void + { + $apiCommands = [ + $this->createMockApiCommand('api:v3:environments:find', false), + $this->createMockApiCommand('api:v3:environments:list', false), + ]; + $listCommands = $this->generateApiListCommands($apiCommands, 'api:v3'); + $this->assertArrayHasKey('api:v3:environments', $listCommands); + $this->assertArrayNotHasKey('api:v3:v3', $listCommands, 'Prefix-depth bug: commandNameParts[1] was used instead of prefixDepth index.'); + } + + /** + * Commands with fewer parts than prefix+2 must be skipped with two-segment prefix. + */ + public function testTwoSegmentPrefixSkipsShallowCommands(): void + { + $apiCommands = [ + $this->createMockApiCommand('api:v3:environments', false), + ]; + $listCommands = $this->generateApiListCommands($apiCommands, 'api:v3'); + $this->assertEmpty($listCommands); + } + /** * Calls private or protected method of ApiCommandHelper class via reflection. * @@ -359,6 +386,31 @@ public function testBuildApiSpecManifestContinuesPastIgnoredMethods(): void $this->assertArrayNotHasKey('ide:create', $manifest); } + /** + * Default v2 behavior: getCliCommandName reads the legacy x-cli-name key. + */ + public function testGetCliCommandNameReturnsLegacyXCliNameValue(): void + { + $result = $this->invokeApiCommandHelperMethod( + 'getCliCommandName', + [['x-cli-name' => 'applications:list']], + ); + $this->assertSame('applications:list', $result); + } + + /** + * Default v2 behavior: getCliCommandName returns null when x-cli-name is absent, + * so generateApiCommandsFromSpec skips the operation. + */ + public function testGetCliCommandNameReturnsNullWhenLegacyKeyMissing(): void + { + $result = $this->invokeApiCommandHelperMethod( + 'getCliCommandName', + [['summary' => 'No CLI name declared']], + ); + $this->assertNull($result); + } + /** * Test that addPostArgumentUsageToExample correctly formats a flat array with a single item. */ diff --git a/tests/phpunit/src/Commands/Api/ApiCommandTest.php b/tests/phpunit/src/Commands/Api/ApiCommandTest.php index 57c362a3..2f6edd7d 100644 --- a/tests/phpunit/src/Commands/Api/ApiCommandTest.php +++ b/tests/phpunit/src/Commands/Api/ApiCommandTest.php @@ -59,6 +59,46 @@ public function testTrustedProxiesCommandExecutesHttpGet(): void $this->assertEquals(0, $this->getStatusCode()); } + /** + * A body-less POST (no requestBody in the spec) must send an empty JSON + * object so the Cloud Platform API receives both a Content-Type header and + * a body, preventing HTTP 415 / HTTP 400 errors. + */ + public function testBodylessPostSendsEmptyJsonBody(): void + { + $agreementUuid = 'da1c0a8e-ff69-45db-88fc-acd6d2affbb7'; + $this->mockRequest('postAcceptAgreement', $agreementUuid); + $this->clientProphecy->addOption('headers', ['Accept' => 'application/hal+json, version=2']) + ->shouldBeCalled(); + $this->clientProphecy->addOption('json', new \stdClass()) + ->shouldBeCalled(); + $this->command = $this->getApiCommandByName('api:agreements:accept'); + $this->executeCommand(['agreementUuid' => $agreementUuid]); + $this->assertEquals(0, $this->getStatusCode()); + } + + /** + * A POST with a request body must NOT send the empty-body fallback; + * the real payload's json option handles Content-Type automatically. + */ + public function testPostWithBodyDoesNotSendEmptyFallback(): void + { + $environmentId = '24-a47ac10b-58cc-4372-a567-0e02b2c3d470'; + $branch = 'my-feature-branch'; + $this->mockRequest('postEnvironmentsSwitchCode', $environmentId, null, 'Switching code'); + $this->clientProphecy->addOption('json', ['branch' => $branch])->shouldBeCalled(); + $this->clientProphecy->addOption('headers', ['Accept' => 'application/hal+json, version=2']) + ->shouldBeCalled(); + $this->clientProphecy->addOption('json', new \stdClass()) + ->shouldNotBeCalled(); + $this->command = $this->getApiCommandByName('api:environments:code-switch'); + $this->executeCommand([ + 'branch' => $branch, + 'environmentId' => $environmentId, + ]); + $this->assertEquals(0, $this->getStatusCode()); + } + public function testTaskWait(): void { $environmentId = '24-a47ac10b-58cc-4372-a567-0e02b2c3d470'; @@ -1183,4 +1223,66 @@ public function testMeoCommandRemovesLinksFromArrayItemsInResponse(): void $this->assertEquals(1, $decoded[0]['id']); $this->assertEquals('site2', $decoded[1]['name']); } + + /** + * A command with non-production stability must print a warning at runtime. + * Kills mutants that remove the stability check or change the condition. + */ + public function testStabilityWarningPrintedForNonProductionCommand(): void + { + $this->clientProphecy->addOption('headers', ['Accept' => 'application/hal+json, version=2']) + ->shouldBeCalled(); + $mockBody = self::getMockResponseFromSpec('/account/ssh-keys', 'get', '200'); + $this->clientProphecy->request('get', '/account/ssh-keys') + ->willReturn($mockBody->{'_embedded'}->items) + ->shouldBeCalled(); + $this->command = $this->getApiCommandByName('api:accounts:ssh-keys-list'); + $this->command->setStability('development'); + $this->executeCommand([]); + $this->assertStringContainsString( + 'This command is in development and may change without notice.', + $this->getDisplay() + ); + } + + /** + * A production command must NOT print a stability warning. + * Kills mutants that fire the warning unconditionally. + */ + public function testNoStabilityWarningForProductionCommand(): void + { + $this->clientProphecy->addOption('headers', ['Accept' => 'application/hal+json, version=2']) + ->shouldBeCalled(); + $mockBody = self::getMockResponseFromSpec('/account/ssh-keys', 'get', '200'); + $this->clientProphecy->request('get', '/account/ssh-keys') + ->willReturn($mockBody->{'_embedded'}->items) + ->shouldBeCalled(); + $this->command = $this->getApiCommandByName('api:accounts:ssh-keys-list'); + $this->command->setStability('production'); + $this->executeCommand([]); + $this->assertStringNotContainsString( + 'may change without notice', + $this->getDisplay() + ); + } + + /** + * Null stability (v2 commands) must not trigger any warning. + */ + public function testNoStabilityWarningWhenStabilityIsNull(): void + { + $this->clientProphecy->addOption('headers', ['Accept' => 'application/hal+json, version=2']) + ->shouldBeCalled(); + $mockBody = self::getMockResponseFromSpec('/account/ssh-keys', 'get', '200'); + $this->clientProphecy->request('get', '/account/ssh-keys') + ->willReturn($mockBody->{'_embedded'}->items) + ->shouldBeCalled(); + $this->command = $this->getApiCommandByName('api:accounts:ssh-keys-list'); + // Stability is null by default — no setStability() call. + $this->executeCommand([]); + $this->assertStringNotContainsString( + 'may change without notice', + $this->getDisplay() + ); + } } diff --git a/tests/phpunit/src/Commands/Api/ApiListCommandTest.php b/tests/phpunit/src/Commands/Api/ApiListCommandTest.php index 93b9052f..03c62283 100644 --- a/tests/phpunit/src/Commands/Api/ApiListCommandTest.php +++ b/tests/phpunit/src/Commands/Api/ApiListCommandTest.php @@ -43,6 +43,9 @@ public function testApiNamespaceListCommand(): void $output = $this->getDisplay(); $this->assertStringContainsString('api:accounts:', $output); $this->assertStringContainsString('api:accounts:ssh-keys-list', $output); + // Without the namespace argument the list would show every namespace; this + // assertion proves the namespace key is actually passed to the list command. + $this->assertStringNotContainsString('api:applications:', $output); } public function testListCommand(): void @@ -53,4 +56,36 @@ public function testListCommand(): void $this->assertStringContainsString(' api:accounts', $output); $this->assertStringNotContainsString(' api:accounts:ssh-keys-list', $output); } + + public function testListCommandSubNamespace(): void + { + $this->command = $this->injectCommand(ListCommand::class); + $this->executeCommand(['namespace' => 'api:accounts']); + $output = $this->getDisplay(); + $this->assertStringContainsString('api:accounts:ssh-keys-list', $output); + } + + /** + * Kills the ConcatOperandRemoval mutation on ListCommand:57. + * + * The condition uses `$prefix . ':'` to distinguish 'api' from 'apifoo'. + * Output-based assertions can't catch this (the namespace filter removes + * non-matching commands either way), so we inspect hidden state directly. + * With the mutation str_starts_with($requestedNs, 'api') is true for 'apifoo', + * so the hide-loop is skipped and api:* sub-commands remain visible. + */ + public function testListCommandHidesApiSubCommandsForUnrelatedNamespace(): void + { + $this->command = $this->injectCommand(ListCommand::class); + // 'apifoo' starts with 'api' but not 'api:' — the edge case the ':' suffix guards. + try { + $this->executeCommand(['namespace' => 'apifoo']); + } catch (\Symfony\Component\Console\Exception\NamespaceNotFoundException) { + // Expected — 'apifoo' is not a registered namespace. + // The hiding logic (ListCommand:55-69) runs before the describe call throws, + // so we still check the hidden state below. + } + $apiSubCommand = $this->application->find('api:accounts:ssh-keys-list'); + $this->assertTrue($apiSubCommand->isHidden(), 'api:* sub-commands must be hidden when the requested namespace is unrelated to api'); + } } diff --git a/tests/phpunit/src/Commands/Api/ApiV3CommandHelperTest.php b/tests/phpunit/src/Commands/Api/ApiV3CommandHelperTest.php new file mode 100644 index 00000000..b98cbdeb --- /dev/null +++ b/tests/phpunit/src/Commands/Api/ApiV3CommandHelperTest.php @@ -0,0 +1,497 @@ +injectCommand(ApiListCommand::class); + } + + private function invokeGetCliCommandName(array $schema): ?string + { + $helper = new ApiV3CommandHelper($this->logger); + $ref = new ReflectionMethod(ApiV3CommandHelper::class, 'getCliCommandName'); + return $ref->invoke($helper, $schema); + } + + /** + * v3 key is present. Helper reads it. + */ + public function testReadsArbKeyWhenPresent(): void + { + $schema = [ + 'x-acquia-exposure' => [ + 'channels' => [ + 'cli' => ['command' => 'environments:find'], + ], + ], + ]; + $this->assertSame('environments:find', $this->invokeGetCliCommandName($schema)); + } + + /** + * v2's legacy `x-cli-name` is NOT ApiV3CommandHelper's concern; that key + * is handled by ApiCommandHelper (v2). v3 ignores it and returns null so + * the operation is skipped in the v3 namespace. + */ + public function testIgnoresLegacyXCliNameKey(): void + { + $schema = ['x-cli-name' => 'legacy-ignored']; + $this->assertNull($this->invokeGetCliCommandName($schema)); + } + + /** + * Both keys present: v3 key is read, legacy is ignored entirely. + */ + public function testUsesArbKeyEvenWhenLegacyAlsoPresent(): void + { + $schema = [ + 'x-acquia-exposure' => [ + 'channels' => [ + 'cli' => ['command' => 'arb-key-used'], + ], + ], + 'x-cli-name' => 'legacy-ignored', + ]; + $this->assertSame('arb-key-used', $this->invokeGetCliCommandName($schema)); + } + + /** + * Neither key: operation is skipped (no CLI name declared). + */ + public function testReturnsNullWhenArbKeyMissing(): void + { + $schema = ['summary' => 'No v3 exposure declared']; + $this->assertNull($this->invokeGetCliCommandName($schema)); + } + + /** + * Partial nested structure: v3 key path is incomplete. Still null; + * we never consult legacy `x-cli-name`. + */ + public function testReturnsNullWhenArbKeyStructureIsIncomplete(): void + { + $schema = [ + 'x-acquia-exposure' => ['channels' => []], + 'x-cli-name' => 'still-ignored', + ]; + $this->assertNull($this->invokeGetCliCommandName($schema)); + } + + + /** + * Kills the ProtectedVisibility mutation on ApiCommandHelper::getCliCommandName. + * + * Coverage of line 382 only happens when getApiCommands() is called on a BASE-CLASS + * instance (child dispatch skips that line). Making the method private breaks + * late-static binding: $this->getCliCommandName() inside generateApiCommandsFromSpec + * would call the private parent version even when $this is ApiV3CommandHelper, + * returning null for every v3 operation → 0 commands generated. + */ + public function testGetCliCommandNamePolymorphicDispatch(): void + { + $spec = [ + 'info' => ['title' => 'Test', 'version' => '1.0'], + 'openapi' => '3.1.0', + 'paths' => [ + '/sites' => [ + 'get' => [ + 'operationId' => 'getSites', + 'parameters' => [], + 'responses' => ['200' => ['description' => 'OK', 'content' => []]], + 'summary' => 'List sites', + 'x-acquia-exposure' => ['channels' => ['cli' => ['command' => 'sites:list']]], + ], + ], + ], + ]; + $specFile = tempnam(sys_get_temp_dir(), 'v3spec') . '.json'; + file_put_contents($specFile, json_encode($spec)); + + // Base class reads x-cli-name only → 0 op-commands (covers line 382). + $baseHelper = new ApiCommandHelper($this->logger); + $baseCommands = $baseHelper->getApiCommands($specFile, 'api', $this->getCommandFactory()); + $baseOpCommands = array_filter($baseCommands, static fn ($c) => $c instanceof ApiBaseCommand); + $this->assertCount(0, $baseOpCommands, 'Base helper must not read x-acquia-exposure.'); + + // V3 class reads x-acquia-exposure via protected override → 1 op-command. + // If getCliCommandName were private in parent, private dispatch would apply + // and this would also return 0 → test fails → mutation killed. + $v3Helper = new ApiV3CommandHelper($this->logger); + $v3Commands = $v3Helper->getApiCommands($specFile, 'api:v3', $this->getCommandFactory()); + $v3OpCommands = array_filter($v3Commands, static fn ($c) => $c instanceof ApiBaseCommand); + $this->assertNotEmpty($v3OpCommands, 'V3 helper must dispatch to the protected override for x-acquia-exposure.'); + + unlink($specFile); + } + + // Audience filtering tests. + + /** + * @param array $operationOverrides + * @return array + */ + private function makeMinimalSpec(array $operationOverrides): array + { + return [ + 'info' => ['title' => 'Test', 'version' => '1.0'], + 'openapi' => '3.1.0', + 'paths' => [ + '/sites' => [ + 'get' => array_merge([ + 'operationId' => 'getSites', + 'parameters' => [], + 'responses' => ['200' => ['description' => 'OK', 'content' => []]], + 'summary' => 'List sites', + 'x-acquia-exposure' => ['channels' => ['cli' => ['command' => 'sites:list']]], + ], $operationOverrides), + ], + ], + ]; + } + + /** + * @param array $spec + * @return ApiBaseCommand[] + */ + private function loadCommandsFromSpec(array $spec): array + { + $specFile = tempnam(sys_get_temp_dir(), 'v3spec') . '.json'; + file_put_contents($specFile, json_encode($spec)); + $helper = new ApiV3CommandHelper($this->logger); + $commands = $helper->getApiCommands($specFile, 'api:v3', $this->getV3CommandFactory()); + unlink($specFile); + return array_values(array_filter($commands, static fn($c) => $c instanceof ApiBaseCommand)); + } + + public function testPublicAudienceIsIncluded(): void + { + $spec = $this->makeMinimalSpec([ + 'x-acquia-exposure' => [ + 'audience' => ['public'], + 'channels' => ['cli' => ['command' => 'sites:list']], + ], + ]); + $this->assertCount(1, $this->loadCommandsFromSpec($spec)); + } + + public function testInternalAudienceIsSkipped(): void + { + $spec = $this->makeMinimalSpec([ + 'x-acquia-exposure' => [ + 'audience' => ['internal'], + 'channels' => ['cli' => ['command' => 'sites:list']], + ], + ]); + $this->assertCount(0, $this->loadCommandsFromSpec($spec)); + } + + public function testCustomerAudienceIsSkipped(): void + { + $spec = $this->makeMinimalSpec([ + 'x-acquia-exposure' => [ + 'audience' => ['customer'], + 'channels' => ['cli' => ['command' => 'sites:list']], + ], + ]); + $this->assertCount(0, $this->loadCommandsFromSpec($spec)); + } + + public function testMixedAudienceIncludingPublicIsIncluded(): void + { + $spec = $this->makeMinimalSpec([ + 'x-acquia-exposure' => [ + 'audience' => ['public', 'internal'], + 'channels' => ['cli' => ['command' => 'sites:list']], + ], + ]); + $this->assertCount(1, $this->loadCommandsFromSpec($spec)); + } + + public function testMissingAudienceIsIncluded(): void + { + $spec = $this->makeMinimalSpec([ + 'x-acquia-exposure' => [ + 'channels' => ['cli' => ['command' => 'sites:list']], + ], + ]); + $this->assertCount(1, $this->loadCommandsFromSpec($spec)); + } + + // channels.cli.enabled filtering tests. + public function testCliEnabledFalseIsSkipped(): void + { + $spec = $this->makeMinimalSpec([ + 'x-acquia-exposure' => [ + 'channels' => ['cli' => ['command' => 'sites:list', 'enabled' => false]], + ], + ]); + $this->assertCount(0, $this->loadCommandsFromSpec($spec)); + } + + public function testCliEnabledTrueIsIncluded(): void + { + $spec = $this->makeMinimalSpec([ + 'x-acquia-exposure' => [ + 'channels' => ['cli' => ['command' => 'sites:list', 'enabled' => true]], + ], + ]); + $this->assertCount(1, $this->loadCommandsFromSpec($spec)); + } + + public function testCliEnabledMissingDefaultsToIncluded(): void + { + $spec = $this->makeMinimalSpec([ + 'x-acquia-exposure' => [ + 'channels' => ['cli' => ['command' => 'sites:list']], + ], + ]); + $this->assertCount(1, $this->loadCommandsFromSpec($spec)); + } + + /** + * Kills the Continue_ mutation (continue→break) in the getSkippedApiCommands() check. + * + * The skipped command must share a path with a subsequent valid command so that + * `break` (exits the inner method-loop) drops the valid command while `continue` + * (skips only this method) keeps it. + */ + public function testSkippedCommandDoesNotBreakSubsequentMethodsOnSamePath(): void + { + $opBase = [ + 'parameters' => [], + 'responses' => ['200' => ['description' => 'OK', 'content' => []]], + 'summary' => 'Test', + ]; + $spec = [ + 'info' => ['title' => 'Test', 'version' => '1.0'], + 'openapi' => '3.1.0', + 'paths' => [ + '/sites' => [ + // 'ide:create' is in getSkippedApiCommands() — must be skipped. + 'get' => $opBase + ['x-acquia-exposure' => ['channels' => ['cli' => ['command' => 'ide:create']]]], + // 'sites:list' is valid — must still be generated despite the skip above. + 'post' => $opBase + ['x-acquia-exposure' => ['channels' => ['cli' => ['command' => 'sites:list']]]], + ], + ], + ]; + $commands = $this->loadCommandsFromSpec($spec); + $this->assertCount(1, $commands); + $this->assertSame('api:v3:sites:list', $commands[0]->getName()); + } + + // End-to-end: drive the real v3 bundle through the real helper. + private const V3_PREFIX = 'api:v3'; + + private function getV3CommandFactory(): ApiV3CommandFactory + { + $v3ClientService = $this->prophet->prophesize(V3ClientService::class)->reveal(); + return new ApiV3CommandFactory( + $this->localMachineHelper, + $this->datastoreCloud, + $this->datastoreAcli, + $this->cloudCredentials, + $this->telemetryHelper, + $this->projectDir, + $v3ClientService, + $this->sshHelper, + $this->sshDir, + $this->logger, + $this->selfUpdateManager, + ); + } + + /** + * @return ApiBaseCommand[] + */ + private function loadRealV3Commands(): array + { + $specPath = Path::canonicalize(__DIR__ . '/../../../../../assets/acquia-v3-spec.json'); + $this->assertFileExists($specPath, 'v3 bundle missing; run `composer update-acquia-v3-spec`.'); + $helper = new ApiV3CommandHelper($this->logger); + return $helper->getApiCommands($specPath, self::V3_PREFIX, $this->getV3CommandFactory()); + } + + /** + * Baseline smoke: the real bundle produces a non-empty command set. + * Catches outright generation failures (spec loads, factory runs, commands return). + */ + public function testRealV3SpecProducesCommands(): void + { + $commands = $this->loadRealV3Commands(); + $this->assertNotEmpty($commands, 'Real v3 bundle generated 0 commands.'); + } + + /** + * Every generated command must live under the api:v3 namespace. + * Kills mutations that drop or mangle the prefix. + */ + public function testEveryGeneratedCommandHasApiV3Prefix(): void + { + $commands = $this->loadRealV3Commands(); + foreach ($commands as $command) { + $name = $command->getName(); + $this->assertStringStartsWith( + self::V3_PREFIX . ':', + (string) $name, + "Command '$name' is missing the api:v3 prefix." + ); + } + } + + /** + * Command names are unique across the bundle. Detects join-prefix collisions + * (e.g. two services declaring the same x-cli-name would otherwise clobber each other). + */ + public function testNoDuplicateCommandNames(): void + { + $commands = $this->loadRealV3Commands(); + $names = array_map(static fn ($c) => $c->getName(), $commands); + $duplicates = array_keys(array_filter(array_count_values($names), static fn ($n) => $n > 1)); + $this->assertSame( + [], + $duplicates, + 'Duplicate command names after join: ' . implode(', ', $duplicates) + ); + } + + /** + * The generator must produce one command per operation that declares a CLI name + * (either legacy x-cli-name or x-acquia-exposure.channels.cli.command), + * plus autogenerated ApiList wrappers for each sub-namespace. + */ + public function testCommandCountMatchesOperationCountInSpec(): void + { + $specPath = Path::canonicalize(__DIR__ . '/../../../../../assets/acquia-v3-spec.json'); + $spec = json_decode((string) file_get_contents($specPath), true); + $expectedOps = 0; + foreach ($spec['paths'] as $methods) { + foreach ($methods as $verb => $op) { + if (!in_array($verb, ['get', 'post', 'put', 'delete', 'patch'], true)) { + continue; + } + $hasLegacy = isset($op['x-cli-name']); + $hasNew = isset($op['x-acquia-exposure']['channels']['cli']['command']); + if ($hasLegacy || $hasNew) { + $expectedOps++; + } + } + } + + $commands = $this->loadRealV3Commands(); + $generatedOpCommands = array_filter( + $commands, + static fn ($c) => $c instanceof ApiBaseCommand + ); + $this->assertCount( + $expectedOps, + $generatedOpCommands, + 'Operation-to-command mapping is not 1:1.' + ); + } + + /** + * Sanity check: every generated operation-level command has the basics populated + * (name, description, HTTP method, path). Detects silent drops of required fields. + */ + public function testEveryGeneratedOperationCommandHasRequiredFields(): void + { + $commands = $this->loadRealV3Commands(); + foreach ($commands as $command) { + if (!$command instanceof ApiBaseCommand) { + // Skip ApiList* wrappers; they don't carry method/path. + continue; + } + $name = (string) $command->getName(); + $this->assertNotEmpty($name, 'Command has empty name.'); + $this->assertNotEmpty($command->getDescription(), "Command '$name' has empty description."); + $this->assertNotEmpty($command->getMethod(), "Command '$name' has empty HTTP method."); + $this->assertNotEmpty($command->getPath(), "Command '$name' has empty path."); + } + } + + /** + * Non-production commands get a [stability] tag appended to their description. + * Production commands must NOT get a tag. + */ + public function testStabilityTagAppearedInDescription(): void + { + $commands = $this->loadRealV3Commands(); + foreach ($commands as $command) { + if (!$command instanceof ApiBaseCommand) { + continue; + } + $stability = $command->getStability(); + $desc = (string) $command->getDescription(); + if ($stability !== null && $stability !== 'production') { + $this->assertStringContainsString( + '[' . $stability . ']', + $desc, + "Command '{$command->getName()}' (stability=$stability) missing tag in description." + ); + } else { + $this->assertStringNotContainsString( + '[', + $desc, + "Command '{$command->getName()}' (production) must not have a stability tag." + ); + } + } + } + + /** + * Stability warning is printed at runtime for non-production commands. + */ + public function testStabilityWarningPrintedAtRuntime(): void + { + $spec = [ + 'info' => ['title' => 'Test', 'version' => '1.0'], + 'openapi' => '3.1.0', + 'paths' => [ + '/sites' => [ + 'get' => [ + 'operationId' => 'getSites', + 'parameters' => [], + 'responses' => ['200' => ['description' => 'OK', 'content' => []]], + 'summary' => 'List sites', + 'x-acquia-exposure' => [ + 'channels' => ['cli' => ['command' => 'sites:list', 'enabled' => true]], + 'stability' => 'development', + ], + ], + ], + ], + ]; + $specFile = tempnam(sys_get_temp_dir(), 'v3spec') . '.json'; + file_put_contents($specFile, json_encode($spec)); + $helper = new ApiV3CommandHelper($this->logger); + $commands = $helper->getApiCommands($specFile, 'api:v3', $this->getV3CommandFactory()); + unlink($specFile); + + $opCommands = array_values(array_filter($commands, static fn ($c) => $c instanceof ApiBaseCommand)); + $this->assertCount(1, $opCommands); + $cmd = $opCommands[0]; + $this->assertSame('development', $cmd->getStability()); + $this->assertSame('List sites [development]', (string) $cmd->getDescription()); + } +} diff --git a/tests/phpunit/src/Misc/ApiV3SpecTest.php b/tests/phpunit/src/Misc/ApiV3SpecTest.php new file mode 100644 index 00000000..6464283a --- /dev/null +++ b/tests/phpunit/src/Misc/ApiV3SpecTest.php @@ -0,0 +1,112 @@ + + */ + private static function loadSpec(): array + { + $path = Path::canonicalize(__DIR__ . '/../../../../assets/acquia-v3-spec.json'); + self::assertFileExists($path, 'v3 spec missing; run `composer update-acquia-v3-spec`.'); + $decoded = json_decode((string) file_get_contents($path), true); + self::assertIsArray($decoded, 'v3 spec is not valid JSON.'); + return $decoded; + } + + public function testSpecFileExistsAndIsValidJson(): void + { + $spec = self::loadSpec(); + $this->assertArrayHasKey('openapi', $spec); + $this->assertArrayHasKey('paths', $spec); + $this->assertArrayHasKey('components', $spec); + } + + public function testOpenApiVersionIsAtLeast31(): void + { + $spec = self::loadSpec(); + $this->assertMatchesRegularExpression('/^3\.(1|[2-9])/', $spec['openapi']); + } + + public function testSpecHasAtLeastOnePath(): void + { + $spec = self::loadSpec(); + $this->assertNotEmpty($spec['paths']); + } + + public function testSpecDoesNotLeakInternalArtifacts(): void + { + $raw = (string) file_get_contents( + Path::canonicalize(__DIR__ . '/../../../../assets/acquia-v3-spec.json') + ); + $this->assertStringNotContainsString('x-internal', $raw); + $this->assertStringNotContainsString('cloud.acquia.dev', $raw); + $this->assertStringNotContainsString('%specUrl%', $raw, 'Preprocessor did not resolve all placeholders.'); + } + + public function testEveryOperationDeclaresACliCommandName(): void + { + $spec = self::loadSpec(); + $missing = []; + foreach ($spec['paths'] as $path => $methods) { + foreach ($methods as $verb => $operation) { + if (!in_array($verb, ['get', 'post', 'put', 'delete', 'patch'], true)) { + continue; + } + $hasLegacy = isset($operation['x-cli-name']); + $hasNew = isset($operation['x-acquia-exposure']['channels']['cli']['command']); + if (!$hasLegacy && !$hasNew) { + $missing[] = strtoupper($verb) . ' ' . $path; + } + } + } + $this->assertEmpty( + $missing, + 'Operations in v3 bundle have no CLI command name (x-cli-name or x-acquia-exposure.channels.cli.command): ' + . implode(', ', $missing) + ); + } + + public function testNoResidualJsonRefsAfterDereferencing(): void + { + $spec = self::loadSpec(); + $residual = self::collectRefs($spec); + $this->assertSame( + [], + $residual, + 'Bundle still contains $ref entries after --dereferenced: ' . implode(', ', array_slice($residual, 0, 5)) + ); + } + + /** + * @return string[] + */ + private static function collectRefs(mixed $node, string $path = ''): array + { + $out = []; + if (!is_array($node)) { + return $out; + } + foreach ($node as $key => $value) { + if ($key === '$ref' && is_string($value)) { + $out[] = $path . '/$ref=' . $value; + } + if (is_array($value)) { + $out = array_merge($out, self::collectRefs($value, $path . '/' . $key)); + } + } + return $out; + } +} From 201a90f5243d1a60df30f1f53a588817f9072976 Mon Sep 17 00:00:00 2001 From: Deepak Kumar Mishra Date: Fri, 10 Jul 2026 16:40:02 +0530 Subject: [PATCH 02/11] conflict resolution fix. --- src/Command/Api/ApiCommandHelper.php | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/Command/Api/ApiCommandHelper.php b/src/Command/Api/ApiCommandHelper.php index 30f154b6..0935ff60 100644 --- a/src/Command/Api/ApiCommandHelper.php +++ b/src/Command/Api/ApiCommandHelper.php @@ -462,8 +462,14 @@ private function generateApiCommandsFromSpec(array $acquiaCloudSpec, string $com private function buildApiCommand(string $path, string $method, array $schema, array $acquiaCloudSpec, string $commandPrefix, CommandFactoryInterface $commandFactory): ApiBaseCommand { $command = $commandFactory->createCommand(); - $command->setName($commandPrefix . ':' . $schema['x-cli-name']); - $command->setDescription($schema['summary']); + $command->setName($commandPrefix . ':' . $this->getCliCommandName($schema)); + $stability = $this->getSchemaStability($schema); + $command->setStability($stability); + $description = $schema['summary']; + if ($stability !== null && $stability !== 'production') { + $description .= " [{$stability}]"; + } + $command->setDescription($description); $command->setMethod($method); $command->setResponses($schema['responses']); $command->setHidden( @@ -585,13 +591,17 @@ private function buildApiSpecManifest(array $acquiaCloudSpec): array $manifest = []; foreach ($acquiaCloudSpec['paths'] as $path => $endpoint) { foreach ($endpoint as $method => $schema) { - if (!array_key_exists('x-cli-name', $schema)) { + $cliName = $this->getCliCommandName($schema); + if ($cliName === null) { + continue; + } + if ($this->shouldSkipOperation($schema)) { continue; } - if (in_array($schema['x-cli-name'], $skippedApiCommands, true)) { + if (in_array($cliName, $skippedApiCommands, true)) { continue; } - $manifest[$schema['x-cli-name']] = [ + $manifest[$cliName] = [ 'deprecated' => self::isDeprecated($schema), 'method' => $method, 'path' => $path, @@ -748,7 +758,7 @@ private function generateApiListCommands(array $apiCommands, string $commandPref $namespaceHasVisibleCommand = []; foreach ($apiCommands as $apiCommand) { $commandNameParts = explode(':', $apiCommand->getName()); - if (!isset($commandNameParts[$prefixDepth])) { + if (!isset($commandNameParts[$prefixDepth + 1])) { continue; } $namespace = $commandNameParts[$prefixDepth]; From 70dc746a52599e8bff64a0c4b398dc22bfadb744 Mon Sep 17 00:00:00 2001 From: Deepak Mishra <108808209+deepakmishra2@users.noreply.github.com> Date: Wed, 15 Jul 2026 11:44:22 +0530 Subject: [PATCH 03/11] CLI-1827: Automate v3 API spec updates via daily cron PR (#2019) Adds a GitHub Actions workflow (.github/workflows/update-v3-spec.yml) that runs daily at 03:00 UTC (and supports workflow_dispatch). It fetches the latest v3 OpenAPI spec from the gateway URL, converts YAML to JSON, and auto-creates + auto-merges a PR when the spec changes. Removes the old update-acquia-v3-spec composer script (npm/git-clone approach) since the workflow replaces it. Co-authored-by: Claude Sonnet 4.6 --- .github/workflows/update-v3-spec.yml | 50 ++++++++++++++++++++++++++++ composer.json | 9 ----- 2 files changed, 50 insertions(+), 9 deletions(-) create mode 100644 .github/workflows/update-v3-spec.yml diff --git a/.github/workflows/update-v3-spec.yml b/.github/workflows/update-v3-spec.yml new file mode 100644 index 00000000..980c1b26 --- /dev/null +++ b/.github/workflows/update-v3-spec.yml @@ -0,0 +1,50 @@ +name: Update Acquia v3 API spec + +on: + schedule: + - cron: '0 3 * * *' + workflow_dispatch: + +jobs: + update-spec: + runs-on: ubuntu-24.04 + permissions: + contents: write + pull-requests: write + steps: + - uses: actions/checkout@v7 + + - name: Download latest v3 spec + run: | + curl -fsSL https://api-specs-dev.dev.cicd.acquia.io/openapi.yaml \ + | python3 -c "import sys,yaml,json; json.dump(yaml.safe_load(sys.stdin), sys.stdout)" \ + > assets/acquia-v3-spec.json + + - name: Check for changes + id: diff + run: | + if git diff --quiet assets/acquia-v3-spec.json; then + echo "changed=false" >> $GITHUB_OUTPUT + else + echo "changed=true" >> $GITHUB_OUTPUT + fi + + - name: Create PR if spec changed + if: steps.diff.outputs.changed == 'true' + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + BRANCH="automated/update-acquia-v3-spec-${{ github.run_id }}" + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git checkout -b "$BRANCH" + git add assets/acquia-v3-spec.json + git commit -m "chore: update Acquia v3 OpenAPI spec" + git push origin "$BRANCH" + gh pr create \ + --title "chore: update Acquia v3 OpenAPI spec" \ + --body "Automated spec update from https://api-specs-dev.dev.cicd.acquia.io/openapi.yaml" \ + --label "chore" \ + --base "${{ github.ref_name }}" \ + --head "$BRANCH" + gh pr merge "$BRANCH" --auto --squash diff --git a/composer.json b/composer.json index 3f651125..9eb7b99b 100644 --- a/composer.json +++ b/composer.json @@ -119,15 +119,6 @@ "cp var/cx-api-spec/dist/spec/acquia-spec-prerelease.json assets/acquia-spec.json", "git -C var/cx-api-spec rev-parse HEAD > assets/acquia-spec.version" ], - "update-acquia-v3-spec": [ - "rm -rf var/api-specs", - "git clone --depth 1 git@github.com:acquia/api-specs.git var/api-specs", - "npm install --prefix var/api-specs @redocly/cli@latest --no-save --ignore-scripts", - "cd var/api-specs && PATH=$(pwd)/node_modules/.bin:$PATH make bundle", - "cd var/api-specs && npx --yes @redocly/cli@latest bundle --config redocly.bundle.yaml dist/openapi.yaml --dereferenced --ext json -o ../../assets/acquia-v3-spec.json", - "git -C var/api-specs rev-parse HEAD > assets/acquia-v3-spec.version", - "rm -rf var/api-specs" - ], "update-acsf-api-spec": [ "rm -rf gardener", "git clone --single-branch -b master --depth 1 git@github.com:acquia/gardener.git", From 7744b8354b6e7a90c57ebb0916848c788a7868a4 Mon Sep 17 00:00:00 2001 From: Deepak Kumar Mishra Date: Fri, 17 Jul 2026 16:29:47 +0530 Subject: [PATCH 04/11] fix: use GH_TOKEN secret for automated spec update PRs GITHUB_TOKEN cannot trigger CI on automated PRs; a PAT stored as GH_TOKEN is required for workflow runs to start on the created PR. Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/update-v3-spec.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-v3-spec.yml b/.github/workflows/update-v3-spec.yml index 980c1b26..e305c4fb 100644 --- a/.github/workflows/update-v3-spec.yml +++ b/.github/workflows/update-v3-spec.yml @@ -32,7 +32,7 @@ jobs: - name: Create PR if spec changed if: steps.diff.outputs.changed == 'true' env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_TOKEN: ${{ secrets.GH_TOKEN }} run: | BRANCH="automated/update-acquia-v3-spec-${{ github.run_id }}" git config user.name "github-actions[bot]" From 5c26045fb139a817d0f8bdf55840345be84d459b Mon Sep 17 00:00:00 2001 From: Deepak Mishra <108808209+deepakmishra2@users.noreply.github.com> Date: Thu, 23 Jul 2026 13:43:25 +0530 Subject: [PATCH 05/11] chore: update v3 spec URL to mesh endpoint --- .github/workflows/update-v3-spec.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/update-v3-spec.yml b/.github/workflows/update-v3-spec.yml index e305c4fb..c3bf93b7 100644 --- a/.github/workflows/update-v3-spec.yml +++ b/.github/workflows/update-v3-spec.yml @@ -16,7 +16,7 @@ jobs: - name: Download latest v3 spec run: | - curl -fsSL https://api-specs-dev.dev.cicd.acquia.io/openapi.yaml \ + curl -fsSL https://api-specs-dev.dev.mesh.cicd.acquia.io/openapi.yaml \ | python3 -c "import sys,yaml,json; json.dump(yaml.safe_load(sys.stdin), sys.stdout)" \ > assets/acquia-v3-spec.json @@ -43,7 +43,7 @@ jobs: git push origin "$BRANCH" gh pr create \ --title "chore: update Acquia v3 OpenAPI spec" \ - --body "Automated spec update from https://api-specs-dev.dev.cicd.acquia.io/openapi.yaml" \ + --body "Automated spec update from https://api-specs-dev.dev.mesh.cicd.acquia.io/openapi.yaml" \ --label "chore" \ --base "${{ github.ref_name }}" \ --head "$BRANCH" From a8afcf83d949aebcb1b35c0d666ac5c8dbc77914 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 24 Jul 2026 12:01:01 +0000 Subject: [PATCH 06/11] Merge branch 'main' into feature/meo-v3-gateway Resolve conflicts: - ApiBaseCommand.php: take CLI-1779 fix (POST-only empty-body guard) - ApiCommandTest.php: keep both testPostWithBodyDoesNotSendEmptyFallback and testBodylessPutDoesNotSendEmptyJsonBody --- src/Command/Api/ApiBaseCommand.php | 4 ---- .../src/Commands/Api/ApiCommandTest.php | 23 +++++++++++-------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/Command/Api/ApiBaseCommand.php b/src/Command/Api/ApiBaseCommand.php index 44038706..e89bd354 100644 --- a/src/Command/Api/ApiBaseCommand.php +++ b/src/Command/Api/ApiBaseCommand.php @@ -133,14 +133,10 @@ protected function execute(InputInterface $input, OutputInterface $output): int // Cloud Platform API requires both a Content-Type header and a body for // all POST requests. Guzzle's `json` option satisfies both; passing an // empty object sends `{}` with Content-Type: application/json. -<<<<<<< HEAD - if (in_array(strtoupper($this->method), ['POST', 'PUT', 'PATCH'], true) && empty($this->postParams)) { -======= // PUT/PATCH endpoints with no body (e.g. site-instances:domain:add) must // not send `{}`: Guzzle creates a non-seekable stream which triggers // `curl_setopt_array(): Stream does not support seeking`. if (strtoupper($this->method) === 'POST' && empty($this->postParams)) { ->>>>>>> origin/main $acquiaCloudClient->addOption('json', new \stdClass()); } diff --git a/tests/phpunit/src/Commands/Api/ApiCommandTest.php b/tests/phpunit/src/Commands/Api/ApiCommandTest.php index d70b22d1..5c7c20cf 100644 --- a/tests/phpunit/src/Commands/Api/ApiCommandTest.php +++ b/tests/phpunit/src/Commands/Api/ApiCommandTest.php @@ -78,7 +78,6 @@ public function testBodylessPostSendsEmptyJsonBody(): void } /** -<<<<<<< HEAD * A POST with a request body must NOT send the empty-body fallback; * the real payload's json option handles Content-Type automatically. */ @@ -88,7 +87,19 @@ public function testPostWithBodyDoesNotSendEmptyFallback(): void $branch = 'my-feature-branch'; $this->mockRequest('postEnvironmentsSwitchCode', $environmentId, null, 'Switching code'); $this->clientProphecy->addOption('json', ['branch' => $branch])->shouldBeCalled(); -======= + $this->clientProphecy->addOption('headers', ['Accept' => 'application/hal+json, version=2']) + ->shouldBeCalled(); + $this->clientProphecy->addOption('json', new \stdClass()) + ->shouldNotBeCalled(); + $this->command = $this->getApiCommandByName('api:environments:code-switch'); + $this->executeCommand([ + 'branch' => $branch, + 'environmentId' => $environmentId, + ]); + $this->assertEquals(0, $this->getStatusCode()); + } + + /** * A body-less PUT (requestBody with no properties, required: false) must * NOT send `{}`. Guzzle creates a non-seekable stream for the empty object * which triggers `curl_setopt_array(): Stream does not support seeking`. @@ -99,23 +110,15 @@ public function testBodylessPutDoesNotSendEmptyJsonBody(): void $environmentId = 'd3f7270e-c45f-4801-9308-5e8afe84a323'; $domainName = 'example.com'; $this->mockRequest('add_domain_to_site', [$siteId, $environmentId, $domainName]); ->>>>>>> origin/main $this->clientProphecy->addOption('headers', ['Accept' => 'application/hal+json, version=2']) ->shouldBeCalled(); $this->clientProphecy->addOption('json', new \stdClass()) ->shouldNotBeCalled(); -<<<<<<< HEAD - $this->command = $this->getApiCommandByName('api:environments:code-switch'); - $this->executeCommand([ - 'branch' => $branch, - 'environmentId' => $environmentId, -======= $this->command = $this->getApiCommandByName('api:site-instances:domain:add'); $this->executeCommand([ 'domainName' => $domainName, 'environmentId' => $environmentId, 'siteId' => $siteId, ->>>>>>> origin/main ]); $this->assertEquals(0, $this->getStatusCode()); } From af617af01f9708c64d35f8f1d72854fa1710781b Mon Sep 17 00:00:00 2001 From: Deepak Kumar Mishra Date: Tue, 28 Jul 2026 08:53:39 +0530 Subject: [PATCH 07/11] chore: remove internal mesh URL from automated PR body Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/update-v3-spec.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-v3-spec.yml b/.github/workflows/update-v3-spec.yml index c3bf93b7..7d8f4480 100644 --- a/.github/workflows/update-v3-spec.yml +++ b/.github/workflows/update-v3-spec.yml @@ -43,7 +43,7 @@ jobs: git push origin "$BRANCH" gh pr create \ --title "chore: update Acquia v3 OpenAPI spec" \ - --body "Automated spec update from https://api-specs-dev.dev.mesh.cicd.acquia.io/openapi.yaml" \ + --body "Automated update of the Acquia v3 OpenAPI spec." \ --label "chore" \ --base "${{ github.ref_name }}" \ --head "$BRANCH" From 94ad2ba95bf648c9a20985b658f1214b723bebd0 Mon Sep 17 00:00:00 2001 From: Deepak Kumar Mishra Date: Tue, 28 Jul 2026 11:21:50 +0530 Subject: [PATCH 08/11] add api:v3 commands in list command. --- src/Command/Self/ListCommand.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Command/Self/ListCommand.php b/src/Command/Self/ListCommand.php index 36480f8a..38eb3c00 100644 --- a/src/Command/Self/ListCommand.php +++ b/src/Command/Self/ListCommand.php @@ -52,7 +52,7 @@ protected function configure(): void protected function execute(InputInterface $input, OutputInterface $output): int { - foreach (['api', 'acsf'] as $prefix) { + foreach (['api', 'acsf', 'api:v3'] as $prefix) { $requestedNs = (string) $input->getArgument('namespace'); if ($requestedNs !== $prefix && !str_starts_with($requestedNs, $prefix . ':')) { $allCommands = $this->getApplication()->all(); From 66f9625ce4502ad37ad9ef90166125bc107dd038 Mon Sep 17 00:00:00 2001 From: Deepak Kumar Mishra Date: Thu, 30 Jul 2026 13:41:37 +0530 Subject: [PATCH 09/11] CLI-1829: Update v3 spec to canonical staging URL and refresh spec - Update update-v3-spec.yml to pull from https://staging.api.acquia.com/v3/openapi.yaml (replaces internal mesh endpoint which is being decommissioned) - Refresh assets/acquia-v3-spec.json from staging: "Acquia Cloud Platform API" v3.0.0 with 84 paths (was "Failover Service API" v1.0.0 with 75 paths) - Update CloudCredentials::getV3BaseUri() comment with confirmed QA and Stage URLs Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/update-v3-spec.yml | 2 +- assets/acquia-v3-spec.json | 153275 +----------------------- src/CloudApi/CloudCredentials.php | 4 +- 3 files changed, 4 insertions(+), 153277 deletions(-) diff --git a/.github/workflows/update-v3-spec.yml b/.github/workflows/update-v3-spec.yml index 7d8f4480..cf77057a 100644 --- a/.github/workflows/update-v3-spec.yml +++ b/.github/workflows/update-v3-spec.yml @@ -16,7 +16,7 @@ jobs: - name: Download latest v3 spec run: | - curl -fsSL https://api-specs-dev.dev.mesh.cicd.acquia.io/openapi.yaml \ + curl -fsSL https://staging.api.acquia.com/v3/openapi.yaml \ | python3 -c "import sys,yaml,json; json.dump(yaml.safe_load(sys.stdin), sys.stdout)" \ > assets/acquia-v3-spec.json diff --git a/assets/acquia-v3-spec.json b/assets/acquia-v3-spec.json index db5253ad..37da4cd6 100644 --- a/assets/acquia-v3-spec.json +++ b/assets/acquia-v3-spec.json @@ -1,153274 +1 @@ -{ - "openapi": "3.1.1", - "info": { - "title": "Failover Service API", - "version": "1.0.0", - "description": "Documentation for failover service API endpoints.", - "license": { - "name": "Acquia Terms of Service", - "url": "https://www.acquia.com/acquia/agreement" - }, - "contact": { - "email": "ngc-web@acquia.com" - } - }, - "tags": [ - { - "name": "Failover_Service_API_Failover Groups", - "description": "Failover Groups", - "x-displayName": "Failover Groups" - }, - { - "name": "Failover_Service_API_Environments", - "description": "Environments", - "x-displayName": "Environments" - }, - { - "name": "Codebase_Service_API_Codebases", - "description": "Codebases", - "x-displayName": "Codebases" - }, - { - "name": "Codebase_Service_API_Codebase References", - "description": "Codebase References", - "x-displayName": "Codebase References" - }, - { - "name": "Codebase_Service_API_Domain Patterns", - "description": "Endpoints related to automated domain pattern management", - "x-displayName": "Domain Patterns" - }, - { - "name": "Tag_API_Tags", - "description": "Tags", - "x-displayName": "Tags" - }, - { - "name": "Site_Service_API_Sites", - "description": "Sites", - "x-displayName": "Sites" - }, - { - "name": "CDN_API_CDNs", - "description": "CDN domain management operations", - "x-displayName": "CDNs" - }, - { - "name": "Environment_Service_API_Environments", - "description": "Endpoints related to Environment resources", - "x-displayName": "Environments" - }, - { - "name": "Environment_Service_API_Site Instances", - "description": "Endpoints related to Site Instance resources", - "x-displayName": "Site Instances" - }, - { - "name": "Environment_Service_API_Deployments", - "description": "Deployments", - "x-displayName": "Deployments" - }, - { - "name": "Environment_Service_API_Code Deploys", - "description": "Code Deploys", - "x-displayName": "Code Deploys" - }, - { - "name": "Environment_Service_API_Domains", - "description": "Endpoints related to Domain resources on site instances", - "x-displayName": "Domains" - }, - { - "name": "Environment_Service_API_Site Instance Databases", - "description": "Endpoints related to database, connection, and backup resources on site instances", - "x-displayName": "Site Instance Databases" - }, - { - "name": "Environment_Service_API_Domain Patterns", - "description": "Endpoints related to automated domain pattern management", - "x-displayName": "Domain Patterns" - }, - { - "name": "Federated_Authentication_API_Domains", - "description": "Endpoints for managing domains for Federated SSO.", - "x-displayName": "Domains" - }, - { - "name": "Federated_Authentication_API_Identity Providers", - "description": "Endpoints for managing Identity Providers for Federated SSO.", - "x-displayName": "Identity Providers" - }, - { - "name": "SSH_Key_Service_API_SSH Keys", - "description": "Manage SSH keys for user accounts.", - "x-displayName": "SSH Keys" - } - ], - "paths": { - "/failover-groups": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves a collection of failover groups.", - "operationId": "getFailoverGroups", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "failover-groups:list" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "failover-service" - } - }, - "tags": [ - "Failover_Service_API_Failover Groups" - ], - "description": "Retrieves a collection of failover groups. Use the `filter` parameter to scope results by source environment.\n\nFilter syntax:\n- By source environment: `filter=environment_id:`\n", - "parameters": [ - { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - }, - { - "name": "filter", - "in": "query", - "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" - }, - "example": "status=active;type=standard" - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for the failover group.", - "example": "b2c3d4e5-f6a7-8901-bcde-f12345678901" - }, - "name": { - "type": "string", - "description": "The name of the failover group.", - "example": "Primary Failover Group" - }, - "status": { - "type": "string", - "enum": [ - "creating", - "normal", - "failed-over", - "failing-over", - "error", - "deleting", - "deleted" - ], - "description": "The current status of the failover group.", - "example": "normal" - }, - "pairs": { - "type": "array", - "description": "The list of failover pairs belonging to this failover group.", - "items": { - "type": "object", - "properties": { - "service_name": { - "type": "string", - "description": "The name of the service for this failover pair.", - "example": "my-application-service" - }, - "primary_id": { - "type": "string", - "description": "The ID of the primary resource in the failover pair.", - "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" - }, - "failover_id": { - "type": "string", - "description": "The UUID of the failover resource in the failover pair.", - "example": "f1e2d3c4-b5a6-7890-fedc-ba9876543210" - } - }, - "required": [ - "service_name", - "primary_id", - "failover_id" - ] - } - } - }, - "required": [ - "id", - "name", - "status", - "pairs" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "examples": { - "failover_group_collection": { - "summary": "Failover group collection with pagination", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/failover-groups?limit=2&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/failover-groups?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/failover-groups?limit=2{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/failover-groups?limit=2&offset=0{&filter}", - "templated": true - } - }, - "count": 1, - "total": 1, - "pagination": { - "total": 1, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", - "name": "Primary Failover Group", - "status": "normal", - "pairs": [ - { - "service_name": "my-application-service", - "primary_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", - "failover_id": "f1e2d3c4-b5a6-7890-fedc-ba9876543210" - } - ], - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901" - } - } - } - ] - } - } - } - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Failover_Service_API_BearerAuth": [] - } - ] - }, - "post": { - "summary": "Creates a new failover group.", - "operationId": "createFailoverGroup", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "failover-groups:create" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "failover-service" - } - }, - "tags": [ - "Failover_Service_API_Failover Groups" - ], - "requestBody": { - "description": "Create failover group request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the failover group.", - "example": "Primary Failover Group" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - }, - "examples": { - "create": { - "summary": "Creates a new failover group", - "description": "Creates a new failover group with the specified name", - "value": { - "name": "Primary Failover Group" - } - } - } - } - } - }, - "responses": { - "202": { - "description": "Failover group creation initiated", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Failover group creation has been initiated.", - "description": "Confirmation message that the failover group creation has been initiated." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901" - } - }, - "message": "Failover group creation has been initiated." - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Failover_Service_API_BearerAuth": [] - } - ] - } - }, - "/failover-groups/{failoverGroupId}": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves a failover group by ID.", - "operationId": "findFailoverGroupByFailoverGroupId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "failover-groups:find" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "failover-service" - } - }, - "tags": [ - "Failover_Service_API_Failover Groups" - ], - "parameters": [ - { - "name": "failoverGroupId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the failover group." - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for the failover group.", - "example": "b2c3d4e5-f6a7-8901-bcde-f12345678901" - }, - "name": { - "type": "string", - "description": "The name of the failover group.", - "example": "Primary Failover Group" - }, - "status": { - "type": "string", - "enum": [ - "creating", - "normal", - "failed-over", - "failing-over", - "error", - "deleting", - "deleted" - ], - "description": "The current status of the failover group.", - "example": "normal" - }, - "pairs": { - "type": "array", - "description": "The list of failover pairs belonging to this failover group.", - "items": { - "type": "object", - "properties": { - "service_name": { - "type": "string", - "description": "The name of the service for this failover pair.", - "example": "my-application-service" - }, - "primary_id": { - "type": "string", - "description": "The ID of the primary resource in the failover pair.", - "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" - }, - "failover_id": { - "type": "string", - "description": "The UUID of the failover resource in the failover pair.", - "example": "f1e2d3c4-b5a6-7890-fedc-ba9876543210" - } - }, - "required": [ - "service_name", - "primary_id", - "failover_id" - ] - } - } - }, - "required": [ - "id", - "name", - "status", - "pairs" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", - "name": "Primary Failover Group", - "status": "normal", - "pairs": [ - { - "service_name": "my-application-service", - "primary_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", - "failover_id": "f1e2d3c4-b5a6-7890-fedc-ba9876543210" - } - ], - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findFailoverGroupByFailoverGroupId", - "parameters": { - "failoverGroupId": "$request.path.failoverGroupId" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Failover_Service_API_BearerAuth": [] - } - ] - }, - "delete": { - "summary": "Deletes a failover group by ID.", - "operationId": "deleteFailoverGroupByFailoverGroupId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "failover-groups:delete" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "failover-service" - } - }, - "tags": [ - "Failover_Service_API_Failover Groups" - ], - "parameters": [ - { - "name": "failoverGroupId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the failover group." - } - ], - "responses": { - "202": { - "description": "Failover group deletion initiated", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Failover group deletion has been initiated.", - "description": "Confirmation message that the failover group deletion has been initiated." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901" - } - }, - "message": "Failover group deletion has been initiated." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Failover_Service_API_BearerAuth": [] - } - ] - } - }, - "/failover-groups/{failoverGroupId}/actions/failover": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "post": { - "summary": "Initiates failover for a failover group.", - "operationId": "failoverFailoverGroupByFailoverGroupId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "failover-groups:failover" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "failover-service" - } - }, - "tags": [ - "Failover_Service_API_Failover Groups" - ], - "parameters": [ - { - "name": "failoverGroupId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the failover group." - } - ], - "responses": { - "202": { - "description": "Failover group failover initiated", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Failover group failover initiated.", - "description": "Confirmation message that the failover group failover has been initiated." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901" - } - }, - "message": "Failover group failover initiated." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Failover_Service_API_BearerAuth": [] - } - ] - } - }, - "/failover-groups/{failoverGroupId}/actions/revert-failover": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "post": { - "summary": "Initiates a revert failover for a failover group.", - "operationId": "revertFailoverFailoverGroupByFailoverGroupId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "failover-groups:revert-failover" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "failover-service" - } - }, - "tags": [ - "Failover_Service_API_Failover Groups" - ], - "parameters": [ - { - "name": "failoverGroupId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the failover group." - } - ], - "responses": { - "202": { - "description": "Failover group revert failover initiated", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Failover group revert failover initiated.", - "description": "Confirmation message that the failover group revert failover has been initiated." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901" - } - }, - "message": "Failover group revert failover initiated." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Failover_Service_API_BearerAuth": [] - } - ] - } - }, - "/failover-groups/{failoverGroupId}/actions/sync": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "post": { - "summary": "Initiates a sync for a failover group.", - "operationId": "syncFailoverGroupByFailoverGroupId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "failover-groups:sync" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "failover-service" - } - }, - "tags": [ - "Failover_Service_API_Failover Groups" - ], - "parameters": [ - { - "name": "failoverGroupId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the failover group." - } - ], - "responses": { - "202": { - "description": "Failover group sync initiated", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Failover group sync initiated.", - "description": "Confirmation message that the failover group sync has been initiated." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901" - } - }, - "message": "Failover group sync initiated." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Failover_Service_API_BearerAuth": [] - } - ] - } - }, - "/environments/{environmentId}/multi-region-failover": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves the multi-region failover status for an environment.", - "operationId": "findMultiRegionFailoverByEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "environments:find-multi-region-failover" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "failover-service" - } - }, - "tags": [ - "Failover_Service_API_Environments" - ], - "parameters": [ - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "is_enabled": { - "type": "boolean", - "description": "Whether multi-region failover is enabled for the environment." - }, - "failover_group_id": { - "type": "string", - "description": "The identifier of the failover group associated with the environment." - }, - "is_traffic_failed_over": { - "type": "boolean", - "description": "Whether traffic has been failed over to the secondary region." - } - }, - "required": [ - "is_enabled" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "is_enabled": true, - "failover_group_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", - "is_traffic_failed_over": false, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/a1b2c3d4-e5f6-7890-abcd-ef1234567890/multi-region-failover" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findMultiRegionFailoverByEnvironmentId", - "parameters": { - "environmentId": "$request.path.environmentId" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Failover_Service_API_BearerAuth": [] - } - ] - }, - "put": { - "summary": "Enables multi-region failover for an environment.", - "operationId": "saveMultiRegionFailoverByEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "environments:update-multi-region-failover" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "failover-service" - } - }, - "tags": [ - "Failover_Service_API_Environments" - ], - "parameters": [ - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "requestBody": { - "description": "Multi-region failover enable request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "region": { - "type": "string", - "description": "The region to enable multi-region failover for.", - "example": "us-east-1" - } - }, - "required": [ - "region" - ], - "additionalProperties": false, - "minProperties": 1 - }, - "examples": { - "enable": { - "summary": "Enables multi-region failover for a region", - "description": "Enables multi-region failover for the specified region", - "value": { - "region": "us-east-1" - } - } - } - } - } - }, - "responses": { - "202": { - "description": "Multi-region failover enable initiated", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Multi-region failover enable has been initiated.", - "description": "Confirmation message that multi-region failover enable has been initiated." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/a1b2c3d4-e5f6-7890-abcd-ef1234567890/multi-region-failover" - } - }, - "message": "Multi-region failover enable has been initiated." - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Failover_Service_API_BearerAuth": [] - } - ] - }, - "delete": { - "summary": "Disables multi-region failover for an environment.", - "operationId": "deleteMultiRegionFailoverByEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "environments:delete-multi-region-failover" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "failover-service" - } - }, - "tags": [ - "Failover_Service_API_Environments" - ], - "parameters": [ - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "responses": { - "202": { - "description": "Multi-region failover disable initiated", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Multi-region failover disable has been initiated.", - "description": "Confirmation message that multi-region failover disable has been initiated." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/a1b2c3d4-e5f6-7890-abcd-ef1234567890/multi-region-failover" - } - }, - "message": "Multi-region failover disable has been initiated." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Failover_Service_API_BearerAuth": [] - } - ] - } - }, - "/codebases": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves a list of codebases accessible by the user.", - "description": "Retrieves a paginated collection of codebases. Use the `filter` parameter to scope results by association.\n\nFilter syntax:\n- By application: `filter=application_id%3D` (e.g. `filter=application_id%3Dabc-123`)\n", - "operationId": "getCodebases", - "x-acquia-exposure": { - "stability": "production", - "audience": [ - "public" - ], - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "codebases:list" - }, - "mcp": { - "enabled": false - }, - "ops": { - "enabled": false - } - } - }, - "x-acquia-operation": { - "provider": { - "service": "codebase-service" - } - }, - "tags": [ - "Codebase_Service_API_Codebases" - ], - "parameters": [ - { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - }, - { - "name": "filter", - "in": "query", - "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" - }, - "example": "status=active;type=standard" - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for the codebase" - }, - "label": { - "type": "string", - "description": "Human-readable label for the codebase" - }, - "region": { - "type": "string", - "description": "AWS region of the codebase" - }, - "vcs_url": { - "type": "string", - "format": "uri", - "description": "VCS repository URL" - }, - "repository_id": { - "type": "string", - "description": "VCS repository identifier" - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "Creation timestamp" - }, - "updated_at": { - "type": "string", - "format": "date-time", - "description": "Last update timestamp" - }, - "description": { - "type": "string", - "description": "Description of the codebase" - }, - "flags": { - "type": "object", - "properties": { - "is_active": { - "type": "boolean", - "description": "Whether the codebase is active" - }, - "is_meo": { - "type": "boolean", - "description": "Whether the codebase is MEO" - } - }, - "required": [ - "is_active", - "is_meo" - ], - "description": "Feature flags for the codebase" - }, - "hash": { - "type": "string", - "description": "Codebase hash" - }, - "applications_total": { - "type": "integer", - "description": "Total number of applications linked to this codebase" - } - }, - "required": [ - "id", - "label", - "region", - "vcs_url", - "repository_id", - "created_at", - "updated_at", - "flags", - "hash", - "applications_total" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "examples": { - "codebase_collection": { - "summary": "Codebase collection with pagination", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases?limit=10&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/codebases?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/codebases?limit=10{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/codebases?limit=10&offset=0{&filter}", - "templated": true - } - }, - "count": 1, - "total": 1, - "pagination": { - "total": 1, - "limit": 10, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", - "label": "my-codebase", - "region": "us-east-1", - "vcs_url": "https://github.com/acquia/my-codebase.git", - "repository_id": "12345678", - "created_at": "2024-01-15T10:30:00Z", - "updated_at": "2024-01-15T10:30:00Z", - "description": "Main production codebase", - "flags": { - "is_active": true, - "is_meo": false - }, - "hash": "abc123def456", - "applications_total": 3, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4" - } - } - } - ] - } - } - } - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Codebase_Service_API_BearerAuth": [] - } - ] - } - }, - "/codebases/{codebaseId}": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves a codebase by its ID.", - "operationId": "findCodebaseByCodebaseId", - "x-acquia-exposure": { - "stability": "production", - "audience": [ - "public" - ], - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "codebases:find" - }, - "mcp": { - "enabled": false - }, - "ops": { - "enabled": false - } - } - }, - "x-acquia-operation": { - "provider": { - "service": "codebase-service" - } - }, - "tags": [ - "Codebase_Service_API_Codebases" - ], - "parameters": [ - { - "name": "codebaseId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the codebase." - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for the codebase" - }, - "label": { - "type": "string", - "description": "Human-readable label for the codebase" - }, - "region": { - "type": "string", - "description": "AWS region of the codebase" - }, - "vcs_url": { - "type": "string", - "format": "uri", - "description": "VCS repository URL" - }, - "repository_id": { - "type": "string", - "description": "VCS repository identifier" - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "Creation timestamp" - }, - "updated_at": { - "type": "string", - "format": "date-time", - "description": "Last update timestamp" - }, - "description": { - "type": "string", - "description": "Description of the codebase" - }, - "flags": { - "type": "object", - "properties": { - "is_active": { - "type": "boolean", - "description": "Whether the codebase is active" - }, - "is_meo": { - "type": "boolean", - "description": "Whether the codebase is MEO" - } - }, - "required": [ - "is_active", - "is_meo" - ], - "description": "Feature flags for the codebase" - }, - "hash": { - "type": "string", - "description": "Codebase hash" - }, - "applications_total": { - "type": "integer", - "description": "Total number of applications linked to this codebase" - } - }, - "required": [ - "id", - "label", - "region", - "vcs_url", - "repository_id", - "created_at", - "updated_at", - "flags", - "hash", - "applications_total" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", - "label": "my-codebase", - "region": "us-east-1", - "vcs_url": "https://github.com/acquia/my-codebase.git", - "repository_id": "12345678", - "created_at": "2024-01-15T10:30:00Z", - "updated_at": "2024-01-15T10:30:00Z", - "description": "Main production codebase", - "flags": { - "is_active": true, - "is_meo": false - }, - "hash": "abc123def456", - "applications_total": 3, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4" - } - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Codebase_Service_API_BearerAuth": [] - } - ] - }, - "put": { - "summary": "Updates a codebase by its ID.", - "operationId": "updateCodebaseByCodebaseId", - "x-acquia-exposure": { - "stability": "production", - "audience": [ - "public" - ], - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "codebases:update" - }, - "mcp": { - "enabled": false - }, - "ops": { - "enabled": false - } - } - }, - "x-acquia-operation": { - "provider": { - "service": "codebase-service" - } - }, - "tags": [ - "Codebase_Service_API_Codebases" - ], - "parameters": [ - { - "name": "codebaseId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the codebase." - } - ], - "requestBody": { - "description": "Codebase update request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "label": { - "type": "string", - "description": "Human-readable label for the codebase" - }, - "description": { - "type": "string", - "description": "Description of the codebase" - } - }, - "minProperties": 1, - "additionalProperties": false - }, - "examples": { - "update": { - "summary": "Update a codebase", - "description": "Updates an existing codebase's label and description", - "value": { - "label": "updated-codebase-label", - "description": "Updated codebase description" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "Codebase updated", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Codebase updated.", - "description": "Confirmation message" - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4" - } - }, - "message": "Codebase updated." - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Codebase_Service_API_BearerAuth": [] - } - ] - }, - "delete": { - "summary": "Deletes a codebase by its ID.", - "operationId": "deleteCodebaseByCodebaseId", - "x-acquia-exposure": { - "stability": "production", - "audience": [ - "public" - ], - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "codebases:delete" - }, - "mcp": { - "enabled": false - }, - "ops": { - "enabled": false - } - } - }, - "x-acquia-operation": { - "provider": { - "service": "codebase-service" - } - }, - "tags": [ - "Codebase_Service_API_Codebases" - ], - "parameters": [ - { - "name": "codebaseId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the codebase." - } - ], - "responses": { - "200": { - "description": "Codebase deleted", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Codebase deleted.", - "description": "Confirmation message" - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4" - } - }, - "message": "Codebase deleted." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Codebase_Service_API_BearerAuth": [] - } - ] - } - }, - "/codebases/{codebaseId}/references": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves a list of git references for a codebase.", - "operationId": "getReferencesByCodebaseId", - "x-acquia-exposure": { - "stability": "production", - "audience": [ - "public" - ], - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "codebases:list-references" - }, - "mcp": { - "enabled": false - }, - "ops": { - "enabled": false - } - } - }, - "x-acquia-operation": { - "provider": { - "service": "codebase-service" - } - }, - "tags": [ - "Codebase_Service_API_Codebase References" - ], - "parameters": [ - { - "name": "codebaseId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the codebase." - }, - { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - } - ], - "responses": { - "200": { - "description": "A list of git references for the codebase", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for the reference" - }, - "name": { - "type": "string", - "description": "Name of the git reference" - }, - "type": { - "type": "string", - "enum": [ - "branch", - "tag" - ], - "description": "Type of the git reference" - } - }, - "required": [ - "id", - "name", - "type" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references?limit=10&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references?limit=10{&offset}", - "templated": true - } - }, - "count": 2, - "total": 2, - "pagination": { - "total": 2, - "limit": 10, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "ref-123", - "name": "main", - "type": "branch", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references/main" - } - } - }, - { - "id": "ref-456", - "name": "v1.0.0", - "type": "tag", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references/v1.0.0" - } - } - } - ] - } - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Codebase_Service_API_BearerAuth": [] - } - ] - } - }, - "/codebases/{codebaseId}/references/{referenceName}": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves a single git reference for a codebase.", - "operationId": "findReferenceByCodebaseIdAndReferenceName", - "x-acquia-exposure": { - "stability": "production", - "audience": [ - "public" - ], - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "codebases:find-reference" - }, - "mcp": { - "enabled": false - }, - "ops": { - "enabled": false - } - } - }, - "x-acquia-operation": { - "provider": { - "service": "codebase-service" - } - }, - "tags": [ - "Codebase_Service_API_Codebase References" - ], - "parameters": [ - { - "name": "codebaseId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the codebase." - }, - { - "name": "referenceName", - "in": "path", - "required": true, - "description": "Name of the git reference (branch or tag). Slashes must be URL-encoded as `%2F` in the path (e.g., `feature%2Fbranch-name`).", - "schema": { - "type": "string", - "pattern": "^[^/]+$" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for the reference" - }, - "name": { - "type": "string", - "description": "Name of the git reference" - }, - "type": { - "type": "string", - "enum": [ - "branch", - "tag" - ], - "description": "Type of the git reference" - } - }, - "required": [ - "id", - "name", - "type" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "id": "ref-123", - "name": "main", - "type": "branch", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references/main" - } - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Codebase_Service_API_BearerAuth": [] - } - ] - } - }, - "/codebases/{codebaseId}/domain-patterns": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves a collection of domain patterns for the specified codebase.", - "operationId": "getDomainPatternsByCodebaseId", - "tags": [ - "Codebase_Service_API_Domain Patterns" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "codebases:list-domain-patterns" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "codebase-service" - } - }, - "parameters": [ - { - "name": "codebaseId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the codebase." - }, - { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - }, - { - "name": "sort", - "in": "query", - "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" - }, - "example": "name,-created_at" - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Unique identifier for the domain pattern." - }, - "pattern": { - "type": "string", - "maxLength": 455, - "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", - "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].[environment-name].acme.com/app). Both [site-name] and [environment-name] tokens are mandatory at codebase level. Domain rules (enforced in service layer): ≤ 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] ≤ 14 chars, [environment-name] ≤ 10 chars). One pattern per codebase.\n", - "example": "[site-name].[environment-name].acme.com" - } - }, - "required": [ - "id", - "pattern" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "examples": { - "domain_pattern_collection": { - "summary": "Domain pattern collection", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns" - }, - "limit": { - "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25{&offset}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25&offset=0{&sort}", - "templated": true - } - }, - "count": 1, - "total": 1, - "pagination": { - "total": 1, - "limit": 25, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "22222222-2222-2222-2222-222222222222", - "pattern": "[site-name].[environment-name].acme.com", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222" - } - } - } - ] - } - } - }, - "domain_pattern_collection_empty": { - "summary": "Empty domain pattern collection", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns" - }, - "limit": { - "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25{&offset}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25&offset=0{&sort}", - "templated": true - } - }, - "count": 0, - "total": 0, - "pagination": { - "total": 0, - "limit": 25, - "offset": 0 - }, - "_embedded": { - "items": [] - } - } - } - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Codebase_Service_API_BearerAuth": [] - } - ] - }, - "post": { - "summary": "Creates a domain pattern for the specified codebase.", - "operationId": "createDomainPatternByCodebaseId", - "tags": [ - "Codebase_Service_API_Domain Patterns" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "codebases:create-domain-pattern" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "codebase-service" - } - }, - "parameters": [ - { - "name": "codebaseId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the codebase." - } - ], - "requestBody": { - "description": "Create domain pattern request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "pattern": { - "type": "string", - "maxLength": 455, - "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", - "description": "The domain pattern to apply to all associated sites in this codebase, optionally followed by a single path segment. Both [site-name] and [environment-name] tokens are mandatory. Domain ≤ 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per codebase) are enforced at the service layer.\n" - } - }, - "required": [ - "pattern" - ], - "additionalProperties": false - }, - "examples": { - "create_domain_pattern": { - "summary": "Create a domain pattern", - "value": { - "pattern": "[site-name].[environment-name].acme.com" - } - } - } - } - } - }, - "responses": { - "202": { - "description": "Domain pattern creation initiated.", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "The domain pattern is being applied to all associated sites in this codebase.", - "description": "Confirmation message that the domain pattern is being applied." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222" - } - }, - "message": "The domain pattern is being applied to all associated sites in this codebase." - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Codebase_Service_API_BearerAuth": [] - } - ] - } - }, - "/codebases/{codebaseId}/domain-patterns/{patternId}": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves a domain pattern by codebase ID and pattern ID.", - "operationId": "findDomainPatternByCodebaseIdAndPatternId", - "tags": [ - "Codebase_Service_API_Domain Patterns" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "codebases:find-domain-pattern" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "codebase-service" - } - }, - "parameters": [ - { - "name": "codebaseId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the codebase." - }, - { - "name": "patternId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the domain pattern." - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Unique identifier for the domain pattern." - }, - "pattern": { - "type": "string", - "maxLength": 455, - "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", - "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].[environment-name].acme.com/app). Both [site-name] and [environment-name] tokens are mandatory at codebase level. Domain rules (enforced in service layer): ≤ 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] ≤ 14 chars, [environment-name] ≤ 10 chars). One pattern per codebase.\n", - "example": "[site-name].[environment-name].acme.com" - } - }, - "required": [ - "id", - "pattern" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "id": "22222222-2222-2222-2222-222222222222", - "pattern": "[site-name].[environment-name].acme.com", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findDomainPatternByCodebaseIdAndPatternId", - "parameters": { - "codebaseId": "$request.path.codebaseId", - "patternId": "$request.path.patternId" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Codebase_Service_API_BearerAuth": [] - } - ] - }, - "put": { - "summary": "Updates a domain pattern for the specified codebase.", - "operationId": "updateDomainPatternByCodebaseIdAndPatternId", - "tags": [ - "Codebase_Service_API_Domain Patterns" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "codebases:update-domain-pattern" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "codebase-service" - } - }, - "parameters": [ - { - "name": "codebaseId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the codebase." - }, - { - "name": "patternId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the domain pattern." - } - ], - "requestBody": { - "description": "Update domain pattern request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "pattern": { - "type": "string", - "maxLength": 455, - "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", - "description": "The updated domain pattern to apply to all associated sites in this codebase, optionally followed by a single path segment. Both [site-name] and [environment-name] tokens are mandatory. Domain ≤ 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per codebase) are enforced at the service layer.\n" - } - }, - "required": [ - "pattern" - ], - "additionalProperties": false, - "minProperties": 1 - }, - "examples": { - "update_domain_pattern": { - "summary": "Update a domain pattern", - "value": { - "pattern": "[site-name].[environment-name].acme.com" - } - } - } - } - } - }, - "responses": { - "202": { - "description": "Domain pattern update initiated.", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "The domain pattern update is being applied to all associated sites in this codebase.", - "description": "Confirmation message that the domain pattern update is being applied." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222" - } - }, - "message": "The domain pattern update is being applied to all associated sites in this codebase." - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Codebase_Service_API_BearerAuth": [] - } - ] - }, - "delete": { - "summary": "Deletes a domain pattern for the specified codebase. Engineering role only.", - "operationId": "deleteDomainPatternByCodebaseIdAndPatternId", - "tags": [ - "Codebase_Service_API_Domain Patterns" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "codebases:delete-domain-pattern" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "codebase-service" - } - }, - "parameters": [ - { - "name": "codebaseId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the codebase." - }, - { - "name": "patternId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the domain pattern." - } - ], - "responses": { - "202": { - "description": "Domain pattern deletion initiated. The 202 covers two async operations: (1) removal of the pattern record and (2) a bulk cleanup that disassociates any URLs already generated from this pattern on all associated site instances in the codebase. Both operations complete before the final settled state is observable.\n", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "The domain pattern is being removed from all associated sites in this codebase.", - "description": "Confirmation message that the domain pattern is being removed." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222" - } - }, - "message": "The domain pattern is being removed from all associated sites in this codebase." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Codebase_Service_API_BearerAuth": [] - } - ] - } - }, - "/subscriptions/{subscriptionId}/codebases": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves a list of codebases for a subscription.", - "operationId": "getCodebasesBySubscriptionId", - "x-acquia-exposure": { - "stability": "production", - "audience": [ - "public" - ], - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "subscriptions:list-codebases" - }, - "mcp": { - "enabled": false - }, - "ops": { - "enabled": false - } - } - }, - "x-acquia-operation": { - "provider": { - "service": "codebase-service" - } - }, - "tags": [ - "Codebase_Service_API_Codebases" - ], - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the subscription" - }, - { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - }, - { - "name": "filter", - "in": "query", - "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" - }, - "example": "status=active;type=standard" - } - ], - "responses": { - "200": { - "description": "A list of codebases for the subscription", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for the codebase" - }, - "label": { - "type": "string", - "description": "Human-readable label for the codebase" - }, - "region": { - "type": "string", - "description": "AWS region of the codebase" - }, - "vcs_url": { - "type": "string", - "format": "uri", - "description": "VCS repository URL" - }, - "repository_id": { - "type": "string", - "description": "VCS repository identifier" - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "Creation timestamp" - }, - "updated_at": { - "type": "string", - "format": "date-time", - "description": "Last update timestamp" - }, - "description": { - "type": "string", - "description": "Description of the codebase" - }, - "flags": { - "type": "object", - "properties": { - "is_active": { - "type": "boolean", - "description": "Whether the codebase is active" - }, - "is_meo": { - "type": "boolean", - "description": "Whether the codebase is MEO" - } - }, - "required": [ - "is_active", - "is_meo" - ], - "description": "Feature flags for the codebase" - }, - "hash": { - "type": "string", - "description": "Codebase hash" - }, - "applications_total": { - "type": "integer", - "description": "Total number of applications linked to this codebase" - } - }, - "required": [ - "id", - "label", - "region", - "vcs_url", - "repository_id", - "created_at", - "updated_at", - "flags", - "hash", - "applications_total" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "examples": { - "subscription_codebase_collection": { - "summary": "Subscription codebase collection with pagination", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-12345/codebases?limit=10&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-12345/codebases?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-12345/codebases?limit=10{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-12345/codebases?limit=10&offset=0{&filter}", - "templated": true - } - }, - "count": 1, - "total": 1, - "pagination": { - "total": 1, - "limit": 10, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", - "label": "my-codebase", - "region": "us-east-1", - "vcs_url": "https://github.com/acquia/my-codebase.git", - "repository_id": "12345678", - "created_at": "2024-01-15T10:30:00Z", - "updated_at": "2024-01-15T10:30:00Z", - "description": "Main production codebase", - "flags": { - "is_active": true, - "is_meo": false - }, - "hash": "abc123def456", - "applications_total": 3, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4" - } - } - } - ] - } - } - } - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Codebase_Service_API_BearerAuth": [] - } - ] - }, - "post": { - "summary": "Creates a new codebase for a subscription.", - "operationId": "createCodebase", - "x-acquia-exposure": { - "stability": "production", - "audience": [ - "public" - ], - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "subscriptions:create-codebase" - }, - "mcp": { - "enabled": false - }, - "ops": { - "enabled": false - } - } - }, - "x-acquia-operation": { - "provider": { - "service": "codebase-service" - } - }, - "tags": [ - "Codebase_Service_API_Codebases" - ], - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the subscription" - } - ], - "requestBody": { - "description": "Codebase creation request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "codebase_id": { - "type": "string", - "format": "uuid", - "description": "Client-supplied UUID for the new codebase" - }, - "label": { - "type": "string", - "description": "Human-readable label for the codebase" - }, - "region": { - "type": "string", - "description": "AWS region where the codebase will be created" - } - }, - "required": [ - "codebase_id", - "label", - "region" - ], - "additionalProperties": false - }, - "examples": { - "create": { - "summary": "Create a codebase", - "description": "Creates a new codebase for a subscription", - "value": { - "codebase_id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", - "label": "my-codebase", - "region": "us-east-1" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "Codebase created", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Codebase created.", - "description": "Confirmation message" - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4" - } - }, - "message": "Codebase created." - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Codebase_Service_API_BearerAuth": [] - } - ] - } - }, - "/tags": { - "servers": [ - { - "url": "https://cloud.acquia.com/api-framework/demo-php/api" - } - ], - "get": { - "summary": "Retrieves a collection of tags.", - "operationId": "getTags", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "tags:list" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "tag-service" - } - }, - "tags": [ - "Tag_API_Tags" - ], - "parameters": [ - { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - }, - { - "name": "filter", - "in": "query", - "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" - }, - "example": "status=active;type=standard" - }, - { - "name": "sort", - "in": "query", - "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" - }, - "example": "name,-created_at" - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "minLength": 1, - "maxLength": 255, - "description": "The name of the tag" - }, - "color": { - "type": "string", - "pattern": "^#((?:[a-f0-9]{3}){1,2})$", - "minLength": 4, - "maxLength": 7, - "description": "The color of the tag" - } - }, - "required": [ - "name", - "color" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "examples": { - "tag_response": { - "summary": "Tag collection with pagination", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags?limit=2&offset=2" - }, - "limit": { - "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags?offset=2{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags?limit=2{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags?limit=2&offset=2{&filter}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags?limit=2&offset=2{&sort}", - "templated": true - }, - "prev": { - "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags?limit=2&offset=0" - }, - "next": { - "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags?offset=4&limit=2" - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "name": "tag-1", - "color": "#ffffff", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags/tag-1" - } - } - }, - { - "name": "tag-2", - "color": "#000000", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags/tag-2" - } - } - } - ] - } - } - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Tag_API_BearerAuth": [] - } - ] - } - }, - "/tags/{tagName}": { - "servers": [ - { - "url": "https://cloud.acquia.com/api-framework/demo-php/api" - } - ], - "get": { - "summary": "Retrieves a tag by tag name.", - "operationId": "findTagByTagName", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "tags:find" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "tag-service" - } - }, - "tags": [ - "Tag_API_Tags" - ], - "parameters": [ - { - "name": "tagName", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the tag." - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "minLength": 1, - "maxLength": 255, - "description": "The name of the tag" - }, - "color": { - "type": "string", - "pattern": "^#((?:[a-f0-9]{3}){1,2})$", - "minLength": 4, - "maxLength": 7, - "description": "The color of the tag" - } - }, - "required": [ - "name", - "color" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "name": "tag-1", - "color": "#ffffff", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags/tag-1" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findTagByTagName", - "parameters": { - "tagName": "$request.path.tagName" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Tag_API_BearerAuth": [] - } - ] - }, - "put": { - "summary": "Creates a tag if tag does not exist else updates the tag by tag name.", - "operationId": "saveTagByTagName", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "tags:update" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "tag-service" - } - }, - "tags": [ - "Tag_API_Tags" - ], - "parameters": [ - { - "name": "tagName", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the tag." - } - ], - "requestBody": { - "description": "Tag create/update request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "color": { - "type": "string", - "pattern": "^#((?:[a-f0-9]{3}){1,2})$", - "description": "A color for the specified tag" - } - }, - "additionalProperties": false, - "minProperties": 1 - }, - "examples": { - "save": { - "summary": "Saves a tag", - "description": "Saves a tag with specified color", - "value": { - "color": "#000000" - } - } - } - } - } - }, - "responses": { - "202": { - "description": "Create/Updates a tag", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "The tag has been saved.", - "description": "Confirmation message that the tag is saved" - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags/tag-3" - } - }, - "message": "The tag has been saved." - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Tag_API_BearerAuth": [] - } - ] - }, - "delete": { - "summary": "Deletes a tag by tag name.", - "operationId": "deleteTagByTagName", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "tags:delete" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "tag-service" - } - }, - "tags": [ - "Tag_API_Tags" - ], - "parameters": [ - { - "name": "tagName", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the tag." - } - ], - "responses": { - "200": { - "description": "Deletes a tag", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "The tag has been deleted.", - "description": "Confirmation message that the tag is deleted" - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags/tag-1" - } - }, - "message": "The tag has been deleted." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Tag_API_BearerAuth": [] - } - ] - } - }, - "/sites": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves a list of sites accessible by the user.", - "operationId": "getSites", - "x-acquia-operation": { - "provider": { - "service": "site-service-php" - } - }, - "x-acquia-exposure": { - "stability": "production", - "audience": [ - "public" - ], - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "sites:list" - } - } - }, - "tags": [ - "Site_Service_API_Sites" - ], - "parameters": [ - { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - }, - { - "name": "filter", - "in": "query", - "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" - }, - "example": "status=active;type=standard" - }, - { - "name": "sort", - "in": "query", - "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" - }, - "example": "name,-created_at" - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "description": "A Site resource", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the site", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "12345678-1234-1234-1234-123456789012" - }, - "name": { - "type": "string", - "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", - "minLength": 1, - "maxLength": 14, - "pattern": "^[a-z][a-z0-9]*$", - "example": "mysite" - }, - "label": { - "type": "string", - "description": "The human-readable label of the site", - "minLength": 1, - "maxLength": 50, - "example": "My Site 1" - }, - "description": { - "type": "string", - "description": "A description of the site", - "maxLength": 512, - "example": "A production site for the marketing team." - }, - "codebase_id": { - "type": "string", - "description": "The unique identifier of the codebase this site belongs to", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "550e8400-e29b-41d4-a716-446655441210" - }, - "status": { - "type": "string", - "description": "The current lifecycle status of the site. ready indicates the site is active and operational. marked-for-deletion indicates the site has been scheduled for deletion and can still be recovered.\n", - "enum": [ - "ready", - "marked-for-deletion" - ], - "example": "ready" - }, - "delete_at": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime indicating when the site is scheduled for deletion. Only present when status is marked-for-deletion.", - "example": "2025-06-15T00:00:00Z" - } - }, - "required": [ - "id", - "name", - "label", - "codebase_id", - "status" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "examples": { - "site_collection": { - "summary": "Site collection with pagination", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/sites?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/sites?limit=2{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0{&filter}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0{&sort}", - "templated": true - }, - "next": { - "href": "https://cloud.acquia.com/api/sites?limit=2&offset=2" - } - }, - "count": 2, - "total": 4, - "pagination": { - "total": 4, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", - "name": "mysite", - "label": "My Site", - "description": "A description of my site.", - "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", - "status": "ready", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890" - } - } - }, - { - "id": "e2b3c4d5-f6a7-8901-bcde-f12345678901", - "name": "anothersite", - "label": "Another Site", - "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", - "status": "marked-for-deletion", - "delete_at": "2025-01-01T00:00:00Z", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sites/e2b3c4d5-f6a7-8901-bcde-f12345678901" - } - } - } - ] - } - } - } - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Site_Service_API_BearerAuth": [] - } - ] - }, - "post": { - "summary": "Creates a site for a codebase.", - "operationId": "createSite", - "x-acquia-operation": { - "provider": { - "service": "site-service-php" - } - }, - "x-acquia-exposure": { - "stability": "production", - "audience": [ - "public" - ], - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "sites:create" - } - } - }, - "tags": [ - "Site_Service_API_Sites" - ], - "requestBody": { - "description": "Site creation request body", - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", - "minLength": 1, - "maxLength": 14, - "pattern": "^[a-z][a-z0-9]*$", - "example": "mysite" - }, - "label": { - "type": "string", - "description": "The human-readable label for the site.", - "minLength": 1, - "maxLength": 50, - "example": "My Site" - }, - "codebase_id": { - "type": "string", - "description": "The unique identifier of the codebase to associate with this site.", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "a9b8c7d6-e5f4-3210-abcd-ef9876543210" - }, - "site_id": { - "type": "string", - "format": "uuid", - "description": "An optional explicit UUID for the new site. A UUID is generated automatically if omitted.", - "example": "0ebce493-9d09-479d-a9a8-138a206fa687" - }, - "description": { - "type": "string", - "description": "An optional description for the site.", - "maxLength": 512, - "example": "A production site for the marketing team." - } - }, - "required": [ - "name", - "label", - "codebase_id" - ], - "additionalProperties": false - }, - "examples": { - "create_site_full": { - "summary": "Create a new site with all fields", - "value": { - "name": "mysite", - "label": "My Site", - "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", - "site_id": "0ebce493-9d09-479d-a9a8-138a206fa687", - "description": "This is a description of my site." - } - }, - "create_site_minimal": { - "summary": "Create a new site with required fields only", - "value": { - "name": "newsitename", - "label": "New Site Label", - "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "Site created", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Site creation started.", - "description": "Confirmation message indicating site creation has been initiated" - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890" - }, - "parent": { - "href": "https://cloud.acquia.com/api/sites" - } - }, - "message": "Site creation started." - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Site_Service_API_BearerAuth": [] - } - ] - } - }, - "/sites/{siteId}": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves a site by its ID.", - "operationId": "findSiteBySiteId", - "x-acquia-operation": { - "provider": { - "service": "site-service-php" - } - }, - "x-acquia-exposure": { - "stability": "production", - "audience": [ - "public" - ], - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "sites:find" - } - } - }, - "tags": [ - "Site_Service_API_Sites" - ], - "parameters": [ - { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "12345678-1234-1234-1234-123456789012" - }, - "description": "Unique identifier for the site" - } - ], - "responses": { - "200": { - "description": "Site details", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "description": "A Site resource", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the site", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "12345678-1234-1234-1234-123456789012" - }, - "name": { - "type": "string", - "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", - "minLength": 1, - "maxLength": 14, - "pattern": "^[a-z][a-z0-9]*$", - "example": "mysite" - }, - "label": { - "type": "string", - "description": "The human-readable label of the site", - "minLength": 1, - "maxLength": 50, - "example": "My Site 1" - }, - "description": { - "type": "string", - "description": "A description of the site", - "maxLength": 512, - "example": "A production site for the marketing team." - }, - "codebase_id": { - "type": "string", - "description": "The unique identifier of the codebase this site belongs to", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "550e8400-e29b-41d4-a716-446655441210" - }, - "status": { - "type": "string", - "description": "The current lifecycle status of the site. ready indicates the site is active and operational. marked-for-deletion indicates the site has been scheduled for deletion and can still be recovered.\n", - "enum": [ - "ready", - "marked-for-deletion" - ], - "example": "ready" - }, - "delete_at": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime indicating when the site is scheduled for deletion. Only present when status is marked-for-deletion.", - "example": "2025-06-15T00:00:00Z" - } - }, - "required": [ - "id", - "name", - "label", - "codebase_id", - "status" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "codebase": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890" - }, - "codebase": { - "href": "https://cloud.acquia.com/api/codebases/a9b8c7d6-e5f4-3210-abcd-ef9876543210" - } - }, - "id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", - "name": "mysite", - "label": "My Site", - "description": "This is a description of my site.", - "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", - "status": "ready" - } - } - }, - "links": { - "self": { - "operationId": "findSiteBySiteId", - "parameters": { - "siteId": "$request.path.siteId" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Site_Service_API_BearerAuth": [] - } - ] - }, - "put": { - "summary": "Updates a site by its ID.", - "operationId": "updateSiteBySiteId", - "x-acquia-operation": { - "provider": { - "service": "site-service-php" - } - }, - "x-acquia-exposure": { - "stability": "production", - "audience": [ - "public" - ], - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "sites:update" - } - } - }, - "tags": [ - "Site_Service_API_Sites" - ], - "parameters": [ - { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "12345678-1234-1234-1234-123456789012" - }, - "description": "Unique identifier for the site" - } - ], - "requestBody": { - "description": "Site update request body", - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "label": { - "type": "string", - "description": "The new human-readable label for the site.", - "minLength": 1, - "maxLength": 50, - "example": "My Updated Site" - }, - "description": { - "type": "string", - "description": "The new description for the site.", - "maxLength": 512, - "example": "Updated description for this site." - } - }, - "additionalProperties": false, - "minProperties": 1 - }, - "examples": { - "update_label": { - "summary": "Update site label", - "value": { - "label": "My Updated Site" - } - }, - "update_description": { - "summary": "Update site description", - "value": { - "description": "Updated description for this site." - } - }, - "update_both": { - "summary": "Update label and description", - "value": { - "label": "My Updated Site", - "description": "Updated description for this site." - } - } - } - } - } - }, - "responses": { - "200": { - "description": "Site update accepted", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Site update started.", - "description": "Confirmation message indicating site update has been initiated" - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sites/12345678-1234-1234-1234-123456789012" - } - }, - "message": "Site update started." - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Site_Service_API_BearerAuth": [] - } - ] - }, - "delete": { - "summary": "Deletes a site by its ID.", - "operationId": "deleteSiteBySiteId", - "x-acquia-operation": { - "provider": { - "service": "site-service-php" - } - }, - "x-acquia-exposure": { - "stability": "production", - "audience": [ - "public" - ], - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "sites:delete" - } - } - }, - "tags": [ - "Site_Service_API_Sites" - ], - "parameters": [ - { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "12345678-1234-1234-1234-123456789012" - }, - "description": "Unique identifier for the site" - } - ], - "responses": { - "202": { - "description": "Site deletion accepted", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Site deleted.", - "description": "Confirmation message indicating the site has been deleted." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sites/550e8400-e29b-41d4-a716-446655440002" - } - }, - "message": "Site deleted." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Site_Service_API_BearerAuth": [] - } - ] - } - }, - "/sites/{siteId}/actions/duplicate": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "post": { - "summary": "Duplicates a site from another given site.", - "operationId": "duplicateSiteBySiteId", - "x-acquia-operation": { - "provider": { - "service": "site-service-php" - } - }, - "x-acquia-exposure": { - "stability": "production", - "audience": [ - "public" - ], - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "sites:duplicate" - } - } - }, - "tags": [ - "Site_Service_API_Sites" - ], - "parameters": [ - { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "12345678-1234-1234-1234-123456789012" - }, - "description": "Unique identifier for the site" - } - ], - "requestBody": { - "description": "Site duplication request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "environment_mapping": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-]+$", - "description": "Environment mapping in the format 'sourceEnvId:targetEnvId'" - }, - "description": "Array of environment mappings. You must provide exactly one environment mapping. Each entry maps a source environment ID to a target environment ID, separated by a colon.\n", - "minItems": 1, - "maxItems": 1, - "example": [ - "0ebce493-9d09-479d-a9a8-138a206fa687:a1b2c3d4-e5f6-7890-abcd-ef1234567890" - ] - }, - "site_name": { - "type": "string", - "description": "Machine name for the duplicated site. Must start with a lowercase letter and contain only lowercase letters and numbers. Maximum 14 characters.\n", - "minLength": 1, - "maxLength": 14, - "pattern": "^[a-z][a-z0-9]*$", - "example": "dupsite" - }, - "site_label": { - "type": "string", - "description": "Human-readable label for the duplicated site. Must only contain letters, numbers, and spaces. Maximum 50 characters.\n", - "minLength": 1, - "maxLength": 50, - "example": "Duplicated Site" - }, - "site_id": { - "type": "string", - "format": "uuid", - "description": "An optional explicit UUID for the new duplicated site. A UUID is generated automatically if omitted.", - "example": "f1a2b3c4-d5e6-7890-abcd-ef1234567890" - }, - "hook_argument": { - "type": "string", - "description": "Optional hook argument to pass to the duplication process.", - "example": "--verbose" - } - }, - "required": [ - "environment_mapping", - "site_name", - "site_label" - ], - "additionalProperties": false - }, - "examples": { - "duplicate_basic": { - "summary": "Duplicate a site with required fields", - "description": "Duplicates a site with a single environment mapping", - "value": { - "environment_mapping": [ - "0ebce493-9d09-479d-a9a8-138a206fa687:a1b2c3d4-e5f6-7890-abcd-ef1234567890" - ], - "site_name": "dupsite", - "site_label": "Duplicated Site" - } - }, - "duplicate_with_options": { - "summary": "Duplicate a site with all options", - "description": "Duplicates a site specifying a custom site ID and hook argument", - "value": { - "environment_mapping": [ - "0ebce493-9d09-479d-a9a8-138a206fa687:a1b2c3d4-e5f6-7890-abcd-ef1234567890" - ], - "site_name": "duphook", - "site_label": "Dup With Hook", - "site_id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", - "hook_argument": "my-hook-arg" - } - } - } - } - } - }, - "responses": { - "202": { - "description": "Site duplication started", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Site duplication started.", - "description": "Confirmation message" - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890" - }, - "parent": { - "href": "https://cloud.acquia.com/api/sites" - } - }, - "message": "Site duplication started." - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Site_Service_API_BearerAuth": [] - } - ] - } - }, - "/sites/{siteId}/actions/recover": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "post": { - "summary": "Recovers a site that is scheduled for deletion", - "operationId": "recoverSiteBySiteId", - "x-acquia-operation": { - "provider": { - "service": "site-service-php" - } - }, - "x-acquia-exposure": { - "stability": "production", - "audience": [ - "public" - ], - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "sites:recover" - } - } - }, - "tags": [ - "Site_Service_API_Sites" - ], - "parameters": [ - { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "12345678-1234-1234-1234-123456789012" - }, - "description": "Unique identifier for the site" - } - ], - "responses": { - "202": { - "description": "Site recovery started", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Site recovery started.", - "description": "Confirmation message indicating the site recovery has been initiated." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sites/11111111-1111-1111-1111-111111111111" - }, - "parent": { - "href": "https://cloud.acquia.com/api/sites" - } - }, - "message": "Site recovery started." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Site_Service_API_BearerAuth": [] - } - ] - } - }, - "/sites/{siteId}/actions/schedule-delete": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "post": { - "summary": "Schedules a site for deletion", - "operationId": "scheduleDeleteSiteBySiteId", - "x-acquia-operation": { - "provider": { - "service": "site-service-php" - } - }, - "x-acquia-exposure": { - "stability": "production", - "audience": [ - "public" - ], - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "sites:schedule-delete" - } - } - }, - "tags": [ - "Site_Service_API_Sites" - ], - "parameters": [ - { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "12345678-1234-1234-1234-123456789012" - }, - "description": "Unique identifier for the site" - } - ], - "responses": { - "202": { - "description": "Site deletion scheduled", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Site deletion scheduled.", - "description": "Confirmation message indicating the site deletion has been scheduled." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sites/550e8400-e29b-41d4-a716-446655440002" - }, - "parent": { - "href": "https://cloud.acquia.com/api/sites" - } - }, - "message": "Site deletion scheduled." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Site_Service_API_BearerAuth": [] - } - ] - } - }, - "/codebases/{codebaseId}/sites": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves a list of sites associated with a codebase.", - "operationId": "getSitesByCodebaseId", - "x-acquia-operation": { - "provider": { - "service": "site-service-php" - } - }, - "x-acquia-exposure": { - "stability": "production", - "audience": [ - "public" - ], - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "codebases:list-sites" - } - } - }, - "tags": [ - "Site_Service_API_Sites" - ], - "parameters": [ - { - "name": "codebaseId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "550e8400-e29b-41d4-a716-446655441212" - }, - "description": "Unique identifier for the codebase" - }, - { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - }, - { - "name": "filter", - "in": "query", - "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" - }, - "example": "status=active;type=standard" - }, - { - "name": "sort", - "in": "query", - "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" - }, - "example": "name,-created_at" - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "description": "A Site resource", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the site", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "12345678-1234-1234-1234-123456789012" - }, - "name": { - "type": "string", - "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", - "minLength": 1, - "maxLength": 14, - "pattern": "^[a-z][a-z0-9]*$", - "example": "mysite" - }, - "label": { - "type": "string", - "description": "The human-readable label of the site", - "minLength": 1, - "maxLength": 50, - "example": "My Site 1" - }, - "description": { - "type": "string", - "description": "A description of the site", - "maxLength": 512, - "example": "A production site for the marketing team." - }, - "codebase_id": { - "type": "string", - "description": "The unique identifier of the codebase this site belongs to", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "550e8400-e29b-41d4-a716-446655441210" - }, - "status": { - "type": "string", - "description": "The current lifecycle status of the site. ready indicates the site is active and operational. marked-for-deletion indicates the site has been scheduled for deletion and can still be recovered.\n", - "enum": [ - "ready", - "marked-for-deletion" - ], - "example": "ready" - }, - "delete_at": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime indicating when the site is scheduled for deletion. Only present when status is marked-for-deletion.", - "example": "2025-06-15T00:00:00Z" - } - }, - "required": [ - "id", - "name", - "label", - "codebase_id", - "status" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "examples": { - "site_collection": { - "summary": "Site collection with pagination", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/sites?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/sites?limit=2{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0{&filter}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0{&sort}", - "templated": true - }, - "next": { - "href": "https://cloud.acquia.com/api/sites?limit=2&offset=2" - } - }, - "count": 2, - "total": 4, - "pagination": { - "total": 4, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", - "name": "mysite", - "label": "My Site", - "description": "A description of my site.", - "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", - "status": "ready", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890" - } - } - }, - { - "id": "e2b3c4d5-f6a7-8901-bcde-f12345678901", - "name": "anothersite", - "label": "Another Site", - "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", - "status": "marked-for-deletion", - "delete_at": "2025-01-01T00:00:00Z", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sites/e2b3c4d5-f6a7-8901-bcde-f12345678901" - } - } - } - ] - } - } - } - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Site_Service_API_BearerAuth": [] - } - ] - } - }, - "/subscriptions/{subscriptionId}/sites": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves a list of sites associated with a subscription.", - "operationId": "getSitesBySubscriptionId", - "x-acquia-operation": { - "provider": { - "service": "site-service-php" - } - }, - "x-acquia-exposure": { - "stability": "production", - "audience": [ - "public" - ], - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "subscriptions:list-sites" - } - } - }, - "tags": [ - "Site_Service_API_Sites" - ], - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "550e8300-e29b-41d4-a716-446655441212" - }, - "description": "Unique identifier for the subscription" - }, - { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - }, - { - "name": "filter", - "in": "query", - "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" - }, - "example": "status=active;type=standard" - }, - { - "name": "sort", - "in": "query", - "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" - }, - "example": "name,-created_at" - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "description": "A Site resource", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the site", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "12345678-1234-1234-1234-123456789012" - }, - "name": { - "type": "string", - "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", - "minLength": 1, - "maxLength": 14, - "pattern": "^[a-z][a-z0-9]*$", - "example": "mysite" - }, - "label": { - "type": "string", - "description": "The human-readable label of the site", - "minLength": 1, - "maxLength": 50, - "example": "My Site 1" - }, - "description": { - "type": "string", - "description": "A description of the site", - "maxLength": 512, - "example": "A production site for the marketing team." - }, - "codebase_id": { - "type": "string", - "description": "The unique identifier of the codebase this site belongs to", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "550e8400-e29b-41d4-a716-446655441210" - }, - "status": { - "type": "string", - "description": "The current lifecycle status of the site. ready indicates the site is active and operational. marked-for-deletion indicates the site has been scheduled for deletion and can still be recovered.\n", - "enum": [ - "ready", - "marked-for-deletion" - ], - "example": "ready" - }, - "delete_at": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime indicating when the site is scheduled for deletion. Only present when status is marked-for-deletion.", - "example": "2025-06-15T00:00:00Z" - } - }, - "required": [ - "id", - "name", - "label", - "codebase_id", - "status" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "examples": { - "site_collection": { - "summary": "Site collection with pagination", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/sites?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/sites?limit=2{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0{&filter}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0{&sort}", - "templated": true - }, - "next": { - "href": "https://cloud.acquia.com/api/sites?limit=2&offset=2" - } - }, - "count": 2, - "total": 4, - "pagination": { - "total": 4, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", - "name": "mysite", - "label": "My Site", - "description": "A description of my site.", - "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", - "status": "ready", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890" - } - } - }, - { - "id": "e2b3c4d5-f6a7-8901-bcde-f12345678901", - "name": "anothersite", - "label": "Another Site", - "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", - "status": "marked-for-deletion", - "delete_at": "2025-01-01T00:00:00Z", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sites/e2b3c4d5-f6a7-8901-bcde-f12345678901" - } - } - } - ] - } - } - } - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Site_Service_API_BearerAuth": [] - } - ] - } - }, - "/environments/{environmentId}/sites": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves a list of sites associated with an environment.", - "operationId": "getSitesByEnvironmentId", - "x-acquia-operation": { - "provider": { - "service": "site-service-php" - } - }, - "x-acquia-exposure": { - "stability": "production", - "audience": [ - "public" - ], - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "environments:list-sites" - } - } - }, - "tags": [ - "Site_Service_API_Sites" - ], - "parameters": [ - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "0ebce493-9d09-479d-a9a8-138a206fa687" - }, - "description": "Unique identifier for the environment" - }, - { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - }, - { - "name": "filter", - "in": "query", - "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" - }, - "example": "status=active;type=standard" - }, - { - "name": "sort", - "in": "query", - "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" - }, - "example": "name,-created_at" - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "description": "A Site resource", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the site", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "12345678-1234-1234-1234-123456789012" - }, - "name": { - "type": "string", - "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", - "minLength": 1, - "maxLength": 14, - "pattern": "^[a-z][a-z0-9]*$", - "example": "mysite" - }, - "label": { - "type": "string", - "description": "The human-readable label of the site", - "minLength": 1, - "maxLength": 50, - "example": "My Site 1" - }, - "description": { - "type": "string", - "description": "A description of the site", - "maxLength": 512, - "example": "A production site for the marketing team." - }, - "codebase_id": { - "type": "string", - "description": "The unique identifier of the codebase this site belongs to", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "550e8400-e29b-41d4-a716-446655441210" - }, - "status": { - "type": "string", - "description": "The current lifecycle status of the site. ready indicates the site is active and operational. marked-for-deletion indicates the site has been scheduled for deletion and can still be recovered.\n", - "enum": [ - "ready", - "marked-for-deletion" - ], - "example": "ready" - }, - "delete_at": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime indicating when the site is scheduled for deletion. Only present when status is marked-for-deletion.", - "example": "2025-06-15T00:00:00Z" - } - }, - "required": [ - "id", - "name", - "label", - "codebase_id", - "status" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "examples": { - "site_collection": { - "summary": "Site collection with pagination", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/sites?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/sites?limit=2{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0{&filter}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0{&sort}", - "templated": true - }, - "next": { - "href": "https://cloud.acquia.com/api/sites?limit=2&offset=2" - } - }, - "count": 2, - "total": 4, - "pagination": { - "total": 4, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", - "name": "mysite", - "label": "My Site", - "description": "A description of my site.", - "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", - "status": "ready", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890" - } - } - }, - { - "id": "e2b3c4d5-f6a7-8901-bcde-f12345678901", - "name": "anothersite", - "label": "Another Site", - "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", - "status": "marked-for-deletion", - "delete_at": "2025-01-01T00:00:00Z", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sites/e2b3c4d5-f6a7-8901-bcde-f12345678901" - } - } - } - ] - } - } - } - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Site_Service_API_BearerAuth": [] - } - ] - } - }, - "/subscriptions/{subscriptionUuid}/domains": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "operationId": "getDomainsBySubscriptionUuid", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "subscriptions:list-domains" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "cdn-service" - } - }, - "tags": [ - "CDN_API_CDNs" - ], - "summary": "Retrieves a collection of CDN domains for a subscription", - "description": "Retrieves a paginated list of CDN domains for the specified subscription.\n\n**Filtering:**\n - Format: `field=value` or `fieldvalue`\n - AND logic: semicolon (`;`) — `status=active;application_name=my-app`\n - OR logic: comma (`,`) — `status=active,status=pending`\n\n**Sorting:**\n- Format: Comma-delimited fields. Prefix with `-` for descending.\n- Example: `domain,-created_at`\n", - "parameters": [ - { - "name": "subscriptionUuid", - "in": "path", - "required": true, - "description": "The unique identifier of the subscription.", - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - } - }, - { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - }, - { - "name": "filter", - "in": "query", - "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" - }, - "example": "status=active;type=standard" - }, - { - "name": "sort", - "in": "query", - "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" - }, - "example": "name,-created_at" - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "description": "CDN domain resource.", - "properties": { - "domain": { - "type": "string", - "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?(\\.[a-zA-Z]{2,})+$", - "description": "The fully qualified domain name." - }, - "subscription_uuid": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "The unique identifier of the subscription the domain belongs to." - }, - "environment_id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "The environment identifier associated with the domain." - }, - "application_name": { - "type": "string", - "description": "The name of the application associated with the domain." - }, - "status": { - "type": "string", - "description": "The current status of the domain.", - "enum": [ - "connecting-to-edge", - "domain-validation-pending", - "ready-for-dns-repointing", - "configuration-failed", - "configured" - ] - }, - "ownership_validation_cname": { - "type": "string", - "description": "The CNAME record that must be created on the domain's DNS to validate ownership." - }, - "bandwidth_usage_tb": { - "type": "number", - "format": "float", - "description": "The bandwidth usage for the domain in terabytes." - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "The timestamp when the domain was created." - }, - "updated_at": { - "type": "string", - "format": "date-time", - "description": "The timestamp when the domain was last updated." - } - }, - "required": [ - "domain", - "subscription_uuid", - "environment_id", - "status", - "application_name", - "ownership_validation_cname", - "bandwidth_usage_tb", - "created_at", - "updated_at" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "examples": { - "domains_response": { - "summary": "Domain collection with pagination", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=0{&filter}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=0{&sort}", - "templated": true - }, - "next": { - "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=2" - } - }, - "count": 2, - "total": 50, - "pagination": { - "total": 50, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "domain": "example.com", - "subscription_uuid": "12345678-1234-1234-1234-123456789012", - "environment_id": "0c3f0f5f-5727-4838-9459-2d90ee1cf7c1", - "application_name": "my-application", - "status": "configured", - "created_at": "2024-01-15T10:30:00Z", - "updated_at": "2024-01-20T15:45:00Z", - "ownership_validation_cname": "_acme-challenge.example.com", - "bandwidth_usage_tb": 1.25, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains/example.com" - } - } - }, - { - "domain": "test.example.org", - "subscription_uuid": "12345678-1234-1234-1234-123456789012", - "environment_id": "1d4f1f6f-6838-5949-a560-3e01ff2cf8d2", - "application_name": "test-application", - "status": "connecting-to-edge", - "created_at": "2024-01-18T08:15:00Z", - "ownership_validation_cname": "_acme-challenge.example.com", - "bandwidth_usage_tb": 1.25, - "updated_at": "2024-01-18T08:15:00Z", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains/test.example.org" - } - } - } - ] - } - } - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "CDN_API_BearerAuth": [] - } - ] - } - }, - "/subscriptions/{subscriptionUuid}/domains/{domainName}": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves a domain by domain name.", - "description": "Retrieves the full details of a CDN domain within a subscription, identified by its fully qualified domain name.", - "operationId": "findDomainBySubscriptionUuidAndDomainName", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "subscriptions:find-domain" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "cdn-service" - } - }, - "tags": [ - "CDN_API_CDNs" - ], - "parameters": [ - { - "name": "subscriptionUuid", - "in": "path", - "required": true, - "description": "The unique identifier of the subscription.", - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - } - }, - { - "name": "domainName", - "in": "path", - "required": true, - "description": "The fully qualified domain name.", - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?(\\.[a-zA-Z]{2,})+$" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "description": "CDN domain resource.", - "properties": { - "domain": { - "type": "string", - "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?(\\.[a-zA-Z]{2,})+$", - "description": "The fully qualified domain name." - }, - "subscription_uuid": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "The unique identifier of the subscription the domain belongs to." - }, - "environment_id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "The environment identifier associated with the domain." - }, - "application_name": { - "type": "string", - "description": "The name of the application associated with the domain." - }, - "status": { - "type": "string", - "description": "The current status of the domain.", - "enum": [ - "connecting-to-edge", - "domain-validation-pending", - "ready-for-dns-repointing", - "configuration-failed", - "configured" - ] - }, - "ownership_validation_cname": { - "type": "string", - "description": "The CNAME record that must be created on the domain's DNS to validate ownership." - }, - "bandwidth_usage_tb": { - "type": "number", - "format": "float", - "description": "The bandwidth usage for the domain in terabytes." - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "The timestamp when the domain was created." - }, - "updated_at": { - "type": "string", - "format": "date-time", - "description": "The timestamp when the domain was last updated." - } - }, - "required": [ - "domain", - "subscription_uuid", - "environment_id", - "status", - "application_name", - "ownership_validation_cname", - "bandwidth_usage_tb", - "created_at", - "updated_at" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "domain": "example.com", - "subscription_uuid": "12345678-1234-1234-1234-123456789012", - "environment_id": "0c3f0f5f-5727-4838-9459-2d90ee1cf7c1", - "application_name": "my-application", - "status": "configured", - "ownership_validation_cname": "_acme-challenge.example.com", - "bandwidth_usage_tb": 1.25, - "created_at": "2024-01-15T10:30:00Z", - "updated_at": "2024-01-20T15:45:00Z", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains/example.com" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findDomainBySubscriptionUuidAndDomainName", - "parameters": { - "subscriptionUuid": "$request.path.subscriptionUuid", - "domainName": "$request.path.domainName" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "CDN_API_BearerAuth": [] - } - ] - } - }, - "/subscriptions/{subscriptionUuid}/domains/{domainName}/actions/provision": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "post": { - "operationId": "provisionDomainBySubscriptionUuidAndDomainName", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "subscriptions:provision-domain" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "cdn-service" - } - }, - "tags": [ - "CDN_API_CDNs" - ], - "summary": "Provisions a domain for CDN services", - "description": "Provisions a domain for CDN services within a subscription by associating it with an environment.", - "parameters": [ - { - "name": "subscriptionUuid", - "in": "path", - "required": true, - "description": "The unique identifier of the subscription.", - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - } - }, - { - "name": "domainName", - "in": "path", - "required": true, - "description": "The fully qualified domain name.", - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?(\\.[a-zA-Z]{2,})+$" - } - } - ], - "requestBody": { - "description": "Domain CDN provisioning request body", - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "environment_id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "The environment identifier that the domain will be associated with for purging purposes." - } - }, - "additionalProperties": false, - "required": [ - "environment_id" - ], - "minProperties": 1 - }, - "example": { - "environment_id": "0c3f0f5f-5727-4838-9459-2d90ee1cf7c1" - } - } - } - }, - "responses": { - "202": { - "description": "Accepted - Provisioning in progress", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "The domain provisioning has been started.", - "description": "Confirmation message" - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains/example.com" - } - }, - "message": "The domain provisioning has been started." - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "CDN_API_BearerAuth": [] - } - ] - } - }, - "/environments/{environmentId}/actions/purge-cdn": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "post": { - "operationId": "purgeCdnByEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "environments:purge-cdn" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "cdn-service" - } - }, - "tags": [ - "CDN_API_CDNs" - ], - "summary": "Creates a CDN cache purge request", - "description": "Creates a request to purge cached content from the CDN for the specified environment.\n\n**Resource Types** (specified in the request body):\n- `urls` - Purge specific URLs\n- `tags` - Purge by cache tags\n- `domains` - Purge entire domains\n- `everything` - Purge all content in the environment\n", - "parameters": [ - { - "name": "environmentId", - "in": "path", - "required": true, - "description": "The unique identifier of the environment.", - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - } - } - ], - "requestBody": { - "description": "Purge request body", - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "resource_type": { - "type": "string", - "description": "The type of resource to purge.", - "enum": [ - "tags", - "urls", - "domains", - "everything" - ] - }, - "values": { - "type": "array", - "description": "List of values to purge based on the resource type.\nRequired when `resource_type` is not `everything`.\n", - "items": { - "type": "string" - }, - "minItems": 1 - } - }, - "additionalProperties": false, - "required": [ - "resource_type" - ], - "minProperties": 1 - }, - "examples": { - "purge_urls": { - "summary": "Purge specific URLs", - "value": { - "resource_type": "urls", - "values": [ - "https://example.com/page1", - "https://example.com/page2" - ] - } - }, - "purge_tags": { - "summary": "Purge by cache tags", - "value": { - "resource_type": "tags", - "values": [ - "product-123", - "category-456" - ] - } - }, - "purge_domains": { - "summary": "Purge entire domains", - "value": { - "resource_type": "domains", - "values": [ - "example.com", - "test.example.org" - ] - } - }, - "purge_everything": { - "summary": "Purge everything", - "value": { - "resource_type": "everything" - } - } - } - } - } - }, - "responses": { - "202": { - "description": "Accepted - Purge request submitted", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "The purge request has been submitted.", - "description": "Confirmation message" - }, - "purge_id": { - "type": "string", - "description": "Unique identifier for tracking the purge request" - } - }, - "required": [ - "purge_id" - ] - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/0c3f0f5f-5727-4838-9459-2d90ee1cf7c1/actions/purge-cdn" - } - }, - "message": "The purge request has been submitted.", - "purge_id": "purge-12345678-1234-1234-1234-123456789012" - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "CDN_API_BearerAuth": [] - } - ] - } - }, - "/codebases/{codebaseId}/environments": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves a collection of environments for the specified codebase.", - "operationId": "getEnvironmentsByCodebaseId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "codebases:list-environments" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Environments" - ], - "parameters": [ - { - "name": "codebaseId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Codebase identifier" - }, - { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - }, - { - "name": "filter", - "in": "query", - "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" - }, - "example": "status=active;type=standard" - } - ], - "responses": { - "200": { - "description": "Environment collection", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "description": "Environment properties", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the environment", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "name": { - "type": "string", - "description": "The machine name of the environment" - }, - "label": { - "type": "string", - "description": "The human-readable label of the environment" - }, - "description": { - "type": "string", - "description": "A description of the environment" - }, - "status": { - "type": "string", - "description": "The current status of the environment", - "enum": [ - "normal", - "allocated", - "launching", - "killed", - "cancelled", - "stopped" - ] - }, - "flags": { - "type": "object", - "description": "Environment configuration flags", - "additionalProperties": { - "type": "boolean" - } - }, - "properties": { - "type": "object", - "description": "Environment PHP and server properties", - "properties": { - "version": { - "type": "string", - "description": "PHP version" - }, - "max_execution_time": { - "type": "integer", - "description": "Maximum execution time in seconds" - }, - "memory_limit": { - "type": "integer", - "description": "Memory limit in MB" - }, - "apcu": { - "type": "integer", - "description": "APCu cache size in MB" - }, - "client_max_body_size": { - "type": "integer", - "description": "Maximum client body size in MB" - }, - "max_input_vars": { - "type": "integer", - "description": "Maximum number of input variables" - }, - "max_post_size": { - "type": "integer", - "description": "Maximum POST size in MB" - }, - "memcached_limit": { - "type": "integer", - "description": "Memcached limit in MB" - }, - "upload_max_filesize": { - "type": "integer", - "description": "Maximum upload file size in MB" - }, - "operating_system": { - "type": "string", - "description": "Operating system codename" - } - } - }, - "reference": { - "type": "string", - "description": "The code reference (branch, tag, or commit) deployed to this environment" - }, - "code_switch_status": { - "type": "string", - "description": "The status of the Switch Code action", - "enum": [ - "IDLE", - "IN_PROGRESS" - ] - }, - "ssh_url": { - "type": "string", - "format": "uri", - "description": "The SSH connection string for accessing this environment" - } - }, - "required": [ - "id", - "name", - "label", - "status", - "flags", - "properties", - "reference", - "code_switch_status", - "ssh_url" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2&offset=0{&filter}", - "templated": true - } - }, - "count": 1, - "total": 1, - "pagination": { - "total": 1, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", - "name": "dev", - "label": "Dev", - "description": "Development environment", - "status": "normal", - "reference": "branch/main", - "code_switch_status": "IDLE", - "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", - "flags": { - "production": false, - "protection_mode": false - }, - "properties": { - "version": "8.3" - }, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc" - } - } - } - ] - } - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/codebases/{codebaseId}/environments/{environmentId}": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves details for an environment by codebase and environment ID.", - "operationId": "findEnvironmentByCodebaseIdAndEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "codebases:find-environment" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Environments" - ], - "parameters": [ - { - "name": "codebaseId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Codebase identifier" - }, - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "responses": { - "200": { - "description": "Environment details", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "description": "Environment properties", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the environment", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "name": { - "type": "string", - "description": "The machine name of the environment" - }, - "label": { - "type": "string", - "description": "The human-readable label of the environment" - }, - "description": { - "type": "string", - "description": "A description of the environment" - }, - "status": { - "type": "string", - "description": "The current status of the environment", - "enum": [ - "normal", - "allocated", - "launching", - "killed", - "cancelled", - "stopped" - ] - }, - "flags": { - "type": "object", - "description": "Environment configuration flags", - "additionalProperties": { - "type": "boolean" - } - }, - "properties": { - "type": "object", - "description": "Environment PHP and server properties", - "properties": { - "version": { - "type": "string", - "description": "PHP version" - }, - "max_execution_time": { - "type": "integer", - "description": "Maximum execution time in seconds" - }, - "memory_limit": { - "type": "integer", - "description": "Memory limit in MB" - }, - "apcu": { - "type": "integer", - "description": "APCu cache size in MB" - }, - "client_max_body_size": { - "type": "integer", - "description": "Maximum client body size in MB" - }, - "max_input_vars": { - "type": "integer", - "description": "Maximum number of input variables" - }, - "max_post_size": { - "type": "integer", - "description": "Maximum POST size in MB" - }, - "memcached_limit": { - "type": "integer", - "description": "Memcached limit in MB" - }, - "upload_max_filesize": { - "type": "integer", - "description": "Maximum upload file size in MB" - }, - "operating_system": { - "type": "string", - "description": "Operating system codename" - } - } - }, - "reference": { - "type": "string", - "description": "The code reference (branch, tag, or commit) deployed to this environment" - }, - "code_switch_status": { - "type": "string", - "description": "The status of the Switch Code action", - "enum": [ - "IDLE", - "IN_PROGRESS" - ] - }, - "ssh_url": { - "type": "string", - "format": "uri", - "description": "The SSH connection string for accessing this environment" - } - }, - "required": [ - "id", - "name", - "label", - "status", - "flags", - "properties", - "reference", - "code_switch_status", - "ssh_url" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "codebase": { - "allOf": [ - { - "type": "object", - "description": "Embedded codebase resource", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the codebase" - } - }, - "required": [ - "id" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc" - }, - "codebase": { - "href": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323" - } - }, - "id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", - "name": "environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc", - "label": "Environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc", - "description": "Description of 3e8ecbec-ea7c-4260-8414-ef2938c859bc", - "status": "normal", - "flags": { - "production": false, - "protection_mode": false - }, - "properties": { - "version": "8.3", - "max_execution_time": 10, - "memory_limit": 192, - "apcu": 32, - "client_max_body_size": 192, - "max_input_vars": 1000, - "max_post_size": 256, - "memcached_limit": 128, - "upload_max_filesize": 192, - "operating_system": "focal" - }, - "reference": "tag/v3.1", - "code_switch_status": "IDLE", - "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", - "_embedded": { - "codebase": { - "id": "d3f7270e-c45f-4801-9308-5e8afe84a323", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323" - } - } - } - } - } - } - }, - "links": { - "self": { - "operationId": "findEnvironmentByEnvironmentId", - "parameters": { - "environmentId": "$request.path.environmentId" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/sites/{siteId}/environments": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves a collection of environments for the specified site.", - "operationId": "getEnvironmentsBySiteId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "sites:list-environments" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Environments" - ], - "parameters": [ - { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the site." - }, - { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - } - ], - "responses": { - "200": { - "description": "Environment collection", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "description": "Environment properties", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the environment", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "name": { - "type": "string", - "description": "The machine name of the environment" - }, - "label": { - "type": "string", - "description": "The human-readable label of the environment" - }, - "description": { - "type": "string", - "description": "A description of the environment" - }, - "status": { - "type": "string", - "description": "The current status of the environment", - "enum": [ - "normal", - "allocated", - "launching", - "killed", - "cancelled", - "stopped" - ] - }, - "flags": { - "type": "object", - "description": "Environment configuration flags", - "additionalProperties": { - "type": "boolean" - } - }, - "properties": { - "type": "object", - "description": "Environment PHP and server properties", - "properties": { - "version": { - "type": "string", - "description": "PHP version" - }, - "max_execution_time": { - "type": "integer", - "description": "Maximum execution time in seconds" - }, - "memory_limit": { - "type": "integer", - "description": "Memory limit in MB" - }, - "apcu": { - "type": "integer", - "description": "APCu cache size in MB" - }, - "client_max_body_size": { - "type": "integer", - "description": "Maximum client body size in MB" - }, - "max_input_vars": { - "type": "integer", - "description": "Maximum number of input variables" - }, - "max_post_size": { - "type": "integer", - "description": "Maximum POST size in MB" - }, - "memcached_limit": { - "type": "integer", - "description": "Memcached limit in MB" - }, - "upload_max_filesize": { - "type": "integer", - "description": "Maximum upload file size in MB" - }, - "operating_system": { - "type": "string", - "description": "Operating system codename" - } - } - }, - "reference": { - "type": "string", - "description": "The code reference (branch, tag, or commit) deployed to this environment" - }, - "code_switch_status": { - "type": "string", - "description": "The status of the Switch Code action", - "enum": [ - "IDLE", - "IN_PROGRESS" - ] - }, - "ssh_url": { - "type": "string", - "format": "uri", - "description": "The SSH connection string for accessing this environment" - } - }, - "required": [ - "id", - "name", - "label", - "status", - "flags", - "properties", - "reference", - "code_switch_status", - "ssh_url" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2{&offset}", - "templated": true - } - }, - "count": 1, - "total": 1, - "pagination": { - "total": 1, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", - "name": "dev", - "label": "Dev", - "description": "Development environment", - "status": "normal", - "reference": "branch/main", - "code_switch_status": "IDLE", - "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", - "flags": { - "production": false, - "protection_mode": false - }, - "properties": { - "version": "8.3" - }, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc" - } - } - } - ] - } - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/private-networks/{privateNetworkId}/environments": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves a collection of environments associated with the specified private network.", - "operationId": "getEnvironmentsByPrivateNetworkId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "private-networks:list-environments" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Environments" - ], - "parameters": [ - { - "name": "privateNetworkId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Private network identifier" - }, - { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - } - ], - "responses": { - "200": { - "description": "Environment collection", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "description": "Environment properties", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the environment", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "name": { - "type": "string", - "description": "The machine name of the environment" - }, - "label": { - "type": "string", - "description": "The human-readable label of the environment" - }, - "description": { - "type": "string", - "description": "A description of the environment" - }, - "status": { - "type": "string", - "description": "The current status of the environment", - "enum": [ - "normal", - "allocated", - "launching", - "killed", - "cancelled", - "stopped" - ] - }, - "flags": { - "type": "object", - "description": "Environment configuration flags", - "additionalProperties": { - "type": "boolean" - } - }, - "properties": { - "type": "object", - "description": "Environment PHP and server properties", - "properties": { - "version": { - "type": "string", - "description": "PHP version" - }, - "max_execution_time": { - "type": "integer", - "description": "Maximum execution time in seconds" - }, - "memory_limit": { - "type": "integer", - "description": "Memory limit in MB" - }, - "apcu": { - "type": "integer", - "description": "APCu cache size in MB" - }, - "client_max_body_size": { - "type": "integer", - "description": "Maximum client body size in MB" - }, - "max_input_vars": { - "type": "integer", - "description": "Maximum number of input variables" - }, - "max_post_size": { - "type": "integer", - "description": "Maximum POST size in MB" - }, - "memcached_limit": { - "type": "integer", - "description": "Memcached limit in MB" - }, - "upload_max_filesize": { - "type": "integer", - "description": "Maximum upload file size in MB" - }, - "operating_system": { - "type": "string", - "description": "Operating system codename" - } - } - }, - "reference": { - "type": "string", - "description": "The code reference (branch, tag, or commit) deployed to this environment" - }, - "code_switch_status": { - "type": "string", - "description": "The status of the Switch Code action", - "enum": [ - "IDLE", - "IN_PROGRESS" - ] - }, - "ssh_url": { - "type": "string", - "format": "uri", - "description": "The SSH connection string for accessing this environment" - } - }, - "required": [ - "id", - "name", - "label", - "status", - "flags", - "properties", - "reference", - "code_switch_status", - "ssh_url" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2{&offset}", - "templated": true - } - }, - "count": 1, - "total": 1, - "pagination": { - "total": 1, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", - "name": "dev", - "label": "Dev", - "description": "Development environment", - "status": "normal", - "reference": "branch/main", - "code_switch_status": "IDLE", - "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", - "flags": { - "production": false, - "protection_mode": false - }, - "properties": { - "version": "8.3" - }, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc" - } - } - } - ] - } - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/environments/{environmentId}": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Get environment details.", - "operationId": "findEnvironmentByEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "environments:find" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Environments" - ], - "parameters": [ - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "responses": { - "200": { - "description": "Environment details", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "description": "Environment properties", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the environment", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "name": { - "type": "string", - "description": "The machine name of the environment" - }, - "label": { - "type": "string", - "description": "The human-readable label of the environment" - }, - "description": { - "type": "string", - "description": "A description of the environment" - }, - "status": { - "type": "string", - "description": "The current status of the environment", - "enum": [ - "normal", - "allocated", - "launching", - "killed", - "cancelled", - "stopped" - ] - }, - "flags": { - "type": "object", - "description": "Environment configuration flags", - "additionalProperties": { - "type": "boolean" - } - }, - "properties": { - "type": "object", - "description": "Environment PHP and server properties", - "properties": { - "version": { - "type": "string", - "description": "PHP version" - }, - "max_execution_time": { - "type": "integer", - "description": "Maximum execution time in seconds" - }, - "memory_limit": { - "type": "integer", - "description": "Memory limit in MB" - }, - "apcu": { - "type": "integer", - "description": "APCu cache size in MB" - }, - "client_max_body_size": { - "type": "integer", - "description": "Maximum client body size in MB" - }, - "max_input_vars": { - "type": "integer", - "description": "Maximum number of input variables" - }, - "max_post_size": { - "type": "integer", - "description": "Maximum POST size in MB" - }, - "memcached_limit": { - "type": "integer", - "description": "Memcached limit in MB" - }, - "upload_max_filesize": { - "type": "integer", - "description": "Maximum upload file size in MB" - }, - "operating_system": { - "type": "string", - "description": "Operating system codename" - } - } - }, - "reference": { - "type": "string", - "description": "The code reference (branch, tag, or commit) deployed to this environment" - }, - "code_switch_status": { - "type": "string", - "description": "The status of the Switch Code action", - "enum": [ - "IDLE", - "IN_PROGRESS" - ] - }, - "ssh_url": { - "type": "string", - "format": "uri", - "description": "The SSH connection string for accessing this environment" - } - }, - "required": [ - "id", - "name", - "label", - "status", - "flags", - "properties", - "reference", - "code_switch_status", - "ssh_url" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "codebase": { - "allOf": [ - { - "type": "object", - "description": "Embedded codebase resource", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the codebase" - } - }, - "required": [ - "id" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc" - }, - "codebase": { - "href": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323" - } - }, - "id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", - "name": "environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc", - "label": "Environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc", - "description": "Description of 3e8ecbec-ea7c-4260-8414-ef2938c859bc", - "status": "normal", - "flags": { - "production": false, - "protection_mode": false - }, - "properties": { - "version": "8.3", - "max_execution_time": 10, - "memory_limit": 192, - "apcu": 32, - "client_max_body_size": 192, - "max_input_vars": 1000, - "max_post_size": 256, - "memcached_limit": 128, - "upload_max_filesize": 192, - "operating_system": "focal" - }, - "reference": "tag/v3.1", - "code_switch_status": "IDLE", - "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", - "_embedded": { - "codebase": { - "id": "d3f7270e-c45f-4801-9308-5e8afe84a323", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323" - } - } - } - } - } - } - }, - "links": { - "self": { - "operationId": "findEnvironmentByEnvironmentId", - "parameters": { - "environmentId": "$request.path.environmentId" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - }, - "put": { - "summary": "Modifies properties settings for the specified environment.", - "operationId": "updateEnvironmentByEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "environments:update" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Environments" - ], - "parameters": [ - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "requestBody": { - "description": "Update environment request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "label": { - "type": "string", - "minLength": 1, - "maxLength": 128, - "description": "Human-readable label for the environment." - }, - "description": { - "type": "string", - "minLength": 1, - "maxLength": 512, - "description": "Description for the environment." - }, - "properties": { - "type": "object", - "description": "PHP and server configuration properties for the environment.", - "properties": { - "version": { - "type": "string", - "description": "PHP version (e.g. \"8.3\")." - }, - "apcu": { - "type": "integer", - "description": "APCu memory limit in MB." - }, - "max_execution_time": { - "type": "integer", - "description": "PHP max execution time in seconds." - }, - "memory_limit": { - "type": "integer", - "description": "PHP memory limit in MB." - }, - "opcache": { - "type": "integer", - "description": "OPcache memory limit in MB." - }, - "interned_strings_buffer": { - "type": "integer", - "description": "OPcache interned strings buffer in MB." - }, - "client_max_body_size": { - "type": "integer", - "description": "Nginx client_max_body_size in MB." - }, - "upload_max_filesize": { - "type": "integer", - "description": "PHP upload_max_filesize in MB." - }, - "max_post_size": { - "type": "integer", - "description": "PHP post_max_size in MB." - }, - "max_input_vars": { - "type": "integer", - "description": "PHP max_input_vars." - }, - "memcached_limit": { - "type": "integer", - "description": "Memcached memory limit in MB." - }, - "operating_system": { - "type": "string", - "description": "Operating system (e.g. \"focal\")." - }, - "sendmail_path": { - "type": "string", - "description": "Sendmail path configuration." - } - } - } - }, - "additionalProperties": false, - "minProperties": 1 - }, - "examples": { - "update_label": { - "summary": "Update environment label", - "value": { - "label": "Staging", - "description": "Staging environment" - } - }, - "update_properties": { - "summary": "Update PHP properties", - "value": { - "properties": { - "version": "8.3", - "memory_limit": 256 - } - } - } - } - } - } - }, - "responses": { - "202": { - "description": "Environment update started", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Environment update started.", - "description": "Confirmation message that the environment update has been started." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc" - } - }, - "message": "Environment update started." - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/environments/{environmentId}/actions/enable-protection-mode": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "post": { - "summary": "Enable Environment Protection mode.", - "operationId": "enableEnvironmentProtectionModeByEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "environments:enable-protection-mode" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Environments" - ], - "parameters": [ - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "responses": { - "202": { - "description": "Enable protection mode initiated", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Environment protection mode enabled.", - "description": "Confirmation message" - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323" - } - }, - "message": "Environment protection mode enabled." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/environments/{environmentId}/actions/disable-protection-mode": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "post": { - "summary": "Disable Environment Protection mode.", - "operationId": "disableEnvironmentProtectionModeByEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "environments:disable-protection-mode" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Environments" - ], - "parameters": [ - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "responses": { - "202": { - "description": "Disable protection mode initiated", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Environment protection mode disabled.", - "description": "Confirmation message" - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323" - } - }, - "message": "Environment protection mode disabled." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/environments/{environmentId}/actions/clear-caches": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "post": { - "summary": "Clears caches for the specified environment.", - "operationId": "clearEnvironmentCachesByEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "environments:clear-caches" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Environments" - ], - "parameters": [ - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "requestBody": { - "description": "Clear caches request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "domains": { - "type": "array", - "description": "List of domain names to clear caches for.", - "minItems": 1, - "items": { - "type": "string", - "description": "A domain name." - } - } - }, - "required": [ - "domains" - ], - "additionalProperties": false - }, - "examples": { - "clear_caches": { - "summary": "Clear caches for specific domains", - "value": { - "domains": [ - "example.com", - "www.example.com" - ] - } - } - } - } - } - }, - "responses": { - "202": { - "description": "Cache clear started", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Varnish domain cache clear started.", - "description": "Confirmation message that the cache clear has been started." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc" - } - }, - "message": "Varnish domain cache clear started." - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/environments/{environmentId}/eips": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves a collection of egress IPs for the specified environment.", - "operationId": "getEgressIpsByEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "environments:list-egress-ips" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Environments" - ], - "parameters": [ - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - }, - { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - } - ], - "responses": { - "200": { - "description": "Egress IP collection", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "description": "Egress IP properties", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Unique identifier for the egress IP." - }, - "status": { - "type": "string", - "description": "Current status of the egress IP." - }, - "ipv4": { - "type": "string", - "description": "The IPv4 address." - }, - "ipv6": { - "type": [ - "string", - "null" - ], - "description": "The IPv6 address, if assigned." - }, - "flags": { - "type": "object", - "description": "Status flags for the egress IP.", - "additionalProperties": { - "type": "boolean" - } - } - }, - "required": [ - "id", - "status", - "ipv4", - "flags" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/eips?limit=25&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/eips?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/eips?limit=25{&offset}", - "templated": true - } - }, - "count": 1, - "total": 1, - "pagination": { - "total": 1, - "limit": 25, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "eip-a1b2c3d4-e5f6-7890-abcd-ef1234567890", - "status": "active", - "ipv4": "203.0.113.10", - "ipv6": null, - "flags": { - "is_primary": true - } - } - ] - } - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/environments/{environmentId}/private-network": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves the private network associated with the specified environment.", - "operationId": "findPrivateNetworkByEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "environments:find-private-network" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Environments" - ], - "parameters": [ - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "responses": { - "200": { - "description": "Private network details", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "description": "Private network reference properties", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Unique identifier for the private network." - }, - "label": { - "type": [ - "string", - "null" - ], - "description": "Human-readable label for the private network." - } - }, - "required": [ - "id" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "id": "pn-a1b2c3d4-e5f6-7890-abcd-ef1234567890", - "label": "Production VPC", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/private-network" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findPrivateNetworkByEnvironmentId", - "parameters": { - "environmentId": "$request.path.environmentId" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - }, - "put": { - "summary": "Associates the specified environment with a private network.", - "operationId": "saveEnvironmentPrivateNetworkByEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "environments:associate-private-network" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Environments" - ], - "parameters": [ - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "requestBody": { - "description": "Associate private network request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "private_network_id": { - "type": "string", - "description": "The identifier of the private network to associate with this environment." - } - }, - "required": [ - "private_network_id" - ], - "additionalProperties": false, - "minProperties": 1 - }, - "examples": { - "associate": { - "summary": "Associate a private network", - "value": { - "private_network_id": "pn-a1b2c3d4-e5f6-7890-abcd-ef1234567890" - } - } - } - } - } - }, - "responses": { - "202": { - "description": "Private network association started", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Associating private network started.", - "description": "Confirmation message that the association has been started." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/private-network" - } - }, - "message": "Associating private network started." - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - }, - "delete": { - "summary": "Disassociates the specified environment from its private network.", - "operationId": "deleteEnvironmentPrivateNetworkByEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "environments:disassociate-private-network" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Environments" - ], - "parameters": [ - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "responses": { - "202": { - "description": "Private network disassociation started", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Disassociating environment from private network started.", - "description": "Confirmation message that the disassociation has been started." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/private-network" - } - }, - "message": "Disassociating environment from private network started." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/environments/{environmentId}/trusted-proxies": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves the trusted proxy configuration for the specified environment.", - "operationId": "findTrustedProxiesByEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "environments:find-trusted-proxies" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Environments" - ], - "parameters": [ - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "responses": { - "200": { - "description": "Trusted proxy configuration details", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "description": "Trusted proxy configuration properties", - "properties": { - "cidrs_ipv4": { - "type": "array", - "description": "List of trusted IPv4 CIDR blocks.", - "items": { - "type": "string" - } - }, - "cidrs_ipv6": { - "type": "array", - "description": "List of trusted IPv6 CIDR blocks.", - "items": { - "type": "string" - } - }, - "associated_cdns": { - "type": "object", - "description": "Map of CDN configurations associated with this environment, keyed by CDN name.", - "additionalProperties": { - "type": "object", - "properties": { - "label": { - "type": "string", - "description": "Display label for the CDN." - }, - "is_enabled": { - "type": "boolean", - "description": "Whether the CDN is enabled." - } - }, - "required": [ - "label", - "is_enabled" - ] - } - } - }, - "required": [ - "cidrs_ipv4", - "cidrs_ipv6", - "associated_cdns" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "cidrs_ipv4": [ - "203.0.113.0/24" - ], - "cidrs_ipv6": [], - "associated_cdns": { - "cloudflare": { - "label": "Cloudflare", - "is_enabled": true - } - }, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/trusted-proxies" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findTrustedProxiesByEnvironmentId", - "parameters": { - "environmentId": "$request.path.environmentId" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - }, - "put": { - "summary": "Updates the trusted proxy configuration for the specified environment.", - "operationId": "updateTrustedProxiesByEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "environments:update-trusted-proxies" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Environments" - ], - "parameters": [ - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "requestBody": { - "description": "Update trusted proxies request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "cidrs_ipv4": { - "type": "array", - "description": "List of trusted IPv4 CIDR blocks.", - "items": { - "type": "string", - "description": "An IPv4 CIDR block (e.g. \"203.0.113.0/24\")." - } - }, - "cidrs_ipv6": { - "type": "array", - "description": "List of trusted IPv6 CIDR blocks.", - "items": { - "type": "string", - "description": "An IPv6 CIDR block (e.g. \"2001:db8::/32\")." - } - }, - "associated_cdns": { - "type": "array", - "description": "List of CDN names to associate with this environment.", - "items": { - "type": "string", - "enum": [ - "akamai", - "cloudflare", - "fastly" - ] - } - } - }, - "additionalProperties": false, - "minProperties": 1 - }, - "examples": { - "update": { - "summary": "Update trusted proxy configuration", - "value": { - "cidrs_ipv4": [ - "203.0.113.0/24" - ], - "cidrs_ipv6": [], - "associated_cdns": [ - "cloudflare" - ] - } - } - } - } - } - }, - "responses": { - "200": { - "description": "Trusted proxy configuration updated", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Trusted Proxies updated successfully.", - "description": "Confirmation message that the configuration has been updated." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/trusted-proxies" - } - }, - "message": "Trusted Proxies updated successfully." - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/environments/{environmentId}/deployments": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves a collection of deployments for the specified environment.", - "operationId": "getDeploymentsByEnvironmentId", - "tags": [ - "Environment_Service_API_Deployments" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "environments:list-deployments" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "parameters": [ - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - }, - { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - }, - { - "name": "filter", - "in": "query", - "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" - }, - "example": "status=active;type=standard" - }, - { - "name": "sort", - "in": "query", - "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" - }, - "example": "name,-created_at" - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "description": "Deployment properties", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Unique identifier for the deployment." - }, - "environment_id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Identifier of the environment this deployment belongs to." - }, - "status": { - "type": "string", - "description": "Current status of the deployment.", - "enum": [ - "waiting", - "received", - "started", - "done", - "failed", - "error", - "killed" - ] - }, - "code_reference": { - "type": "string", - "description": "The code reference (e.g. branch or tag) deployed." - }, - "run_hooks": { - "type": "boolean", - "description": "Whether deployment hooks were run." - }, - "hooks_argument": { - "type": [ - "string", - "null" - ], - "description": "Additional arguments passed to deployment hooks." - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "Timestamp when the deployment was created." - }, - "started_at": { - "type": [ - "string", - "null" - ], - "format": "date-time", - "description": "Timestamp when the deployment started." - }, - "completed_at": { - "type": [ - "string", - "null" - ], - "format": "date-time", - "description": "Timestamp when the deployment completed." - }, - "sender_id": { - "type": [ - "string", - "null" - ], - "description": "Identifier of the user or system that initiated the deployment." - }, - "logs": { - "type": [ - "string", - "null" - ], - "description": "Deployment log output." - } - }, - "required": [ - "id", - "environment_id", - "status", - "code_reference", - "run_hooks", - "created_at" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "examples": { - "deployment_response": { - "summary": "Deployment collection with pagination", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=2" - }, - "limit": { - "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?offset=2{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=2{&filter}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=2{&sort}", - "templated": true - }, - "prev": { - "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=0" - }, - "next": { - "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=4" - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3", - "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", - "status": "done", - "code_reference": "tags/v1.0.0", - "run_hooks": true, - "hooks_argument": null, - "sender_id": null, - "created_at": "2025-04-01T13:01:06.603Z", - "started_at": "2025-04-01T13:01:10.123Z", - "completed_at": "2025-04-01T13:05:00.000Z", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" - }, - "environment": { - "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323" - } - } - }, - { - "id": "f1dae0f8-67c7-5d1e-cbe1-1f7604f77de4", - "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", - "status": "failed", - "code_reference": "tags/v0.9.0", - "run_hooks": false, - "hooks_argument": null, - "sender_id": null, - "created_at": "2025-03-28T09:15:00.000Z", - "started_at": "2025-03-28T09:15:05.000Z", - "completed_at": "2025-03-28T09:18:00.000Z", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/deployments/f1dae0f8-67c7-5d1e-cbe1-1f7604f77de4" - }, - "environment": { - "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323" - } - } - } - ] - } - } - } - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - }, - "post": { - "summary": "Starts a deployment for the specified environment.", - "operationId": "createDeploymentByEnvironmentId", - "tags": [ - "Environment_Service_API_Deployments" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "environments:create-deployment" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "parameters": [ - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "requestBody": { - "description": "Deployment start request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "run_hooks": { - "type": "boolean", - "description": "Whether to run deployment hooks." - }, - "code_reference": { - "type": "string", - "description": "The code reference (branch or tag) to deploy." - }, - "hooks_argument": { - "type": "string", - "description": "Additional arguments passed to deployment hooks." - } - }, - "required": [ - "run_hooks", - "code_reference" - ], - "additionalProperties": false, - "minProperties": 1 - }, - "examples": { - "start_deployment": { - "summary": "Start a deployment", - "description": "Starts a deployment for the specified environment.", - "value": { - "run_hooks": true, - "code_reference": "release-2025-01-15", - "hooks_argument": "--migrate --clear-cache" - } - } - } - } - } - }, - "responses": { - "202": { - "description": "Deployment started", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Deployment started.", - "description": "Confirmation message that the deployment has been started." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" - } - }, - "message": "Deployment started." - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/environments/{environmentId}/code-deploy": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves the code deploy concurrency setting for the environment.", - "operationId": "findCodeDeployByEnvironmentId", - "tags": [ - "Environment_Service_API_Code Deploys" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "environments:find-code-deploy" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "parameters": [ - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "concurrency": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "description": "Maximum number of concurrent code deploys allowed for the environment." - } - }, - "required": [ - "concurrency" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "concurrency": 5, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/code-deploy" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findCodeDeployByEnvironmentId", - "parameters": { - "environmentId": "$request.path.environmentId" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - }, - "put": { - "summary": "Updates the code deploy concurrency setting for the environment.", - "operationId": "updateCodeDeployByEnvironmentId", - "tags": [ - "Environment_Service_API_Code Deploys" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "environments:update-code-deploy" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "parameters": [ - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "requestBody": { - "description": "Code deploy concurrency update request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "concurrency": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "description": "Maximum number of concurrent code deploys allowed for the environment." - } - }, - "required": [ - "concurrency" - ], - "additionalProperties": false, - "minProperties": 1 - }, - "examples": { - "update_concurrency": { - "summary": "Update code deploy concurrency", - "description": "Sets the maximum concurrent code deploys for the environment.", - "value": { - "concurrency": 10 - } - } - } - } - } - }, - "responses": { - "200": { - "description": "Code deploy concurrency setting updated", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Code deploy settings updated successfully.", - "description": "Confirmation message that the concurrency setting has been updated." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/code-deploy" - } - }, - "message": "Code deploy settings updated successfully." - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/environments/{environmentId}/site-instances": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "post": { - "summary": "Associates a site with the specified environment.", - "operationId": "createSiteInstanceByEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "environments:create-site-instance" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Site Instances" - ], - "parameters": [ - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "requestBody": { - "description": "Create site instance request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "site_id": { - "type": "string", - "description": "The UUID of the site to associate with this environment." - }, - "source_environment_id": { - "type": "string", - "description": "The UUID of the environment to copy files and database from during creation." - }, - "source_site_id": { - "type": "string", - "description": "The UUID of the source site to copy files from during creation." - }, - "hook_arguments": { - "type": "string", - "description": "Additional arguments to pass to deployment hooks during creation." - } - }, - "required": [ - "site_id" - ], - "additionalProperties": false - }, - "examples": { - "create": { - "summary": "Associate a site with an environment", - "value": { - "site_id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc" - } - } - } - } - } - }, - "responses": { - "202": { - "description": "Site instance creation started", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Site instance creation started.", - "description": "Confirmation message that site association has been started." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323" - } - }, - "message": "Site instance creation started." - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/environments/{environmentId}/site-instances/actions/reorder": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "post": { - "summary": "Updates the priority order of site instances for the environment.", - "operationId": "reorderSiteInstancesByEnvironmentId", - "tags": [ - "Environment_Service_API_Site Instances" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "environments:reorder-site-instances" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "parameters": [ - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "requestBody": { - "description": "Site instances reorder request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "site_instance_ids": { - "type": "array", - "description": "List of site instance IDs in the desired priority order.", - "items": { - "type": "string", - "description": "Site instance identifier in the format {siteId}.{environmentId} (dot-separated site and environment UUIDs)." - } - } - }, - "required": [ - "site_instance_ids" - ], - "additionalProperties": false, - "minProperties": 1 - }, - "examples": { - "reorder": { - "summary": "Reorder site instances", - "description": "Provides the desired order of site instance IDs for the environment.", - "value": { - "site_instance_ids": [ - "3e8ecbec-ea7c-4260-8414-ef2938c859bc.a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3", - "b1d8e2f8-67c7-5d1e-cbe1-1f7604f77de4.c2e9f3a9-78d8-6e2f-dcf2-2a8715a88ef5", - "d3fa04ba-89e9-4f3a-edf3-3b9826b99fa6.e4ab15cb-90fa-4a4b-fea4-4c0937c00ab7" - ] - } - } - } - } - } - }, - "responses": { - "200": { - "description": "Site instances reordered successfully", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Site instances reordered successfully.", - "description": "Confirmation message that the site instances have been reordered." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/site-instances" - } - }, - "message": "Site instances reordered successfully." - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/site-instances/{siteId}.{environmentId}": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Get site instance details.", - "operationId": "findSiteInstanceBySiteIdAndEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "site-instances:find" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Site Instances" - ], - "parameters": [ - { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the site." - }, - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "responses": { - "200": { - "description": "Site Instance details", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "description": "Site Instance properties", - "properties": { - "site_id": { - "type": "string", - "description": "The unique identifier of the site", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "environment_id": { - "type": "string", - "description": "The unique identifier of the environment", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "status": { - "type": "string", - "description": "The current status of the site instance", - "enum": [ - "active", - "creating", - "create-failed", - "updating", - "update-failed", - "deleting", - "deleted", - "delete-failed" - ] - }, - "health_status": { - "type": "object", - "description": "Health status information for the site instance", - "properties": { - "code": { - "type": "string", - "description": "Health status code" - }, - "summary": { - "type": "string", - "description": "Summary of the health status" - }, - "details": { - "type": "string", - "description": "Detailed health status information" - } - }, - "required": [ - "code", - "summary", - "details" - ] - }, - "domains": { - "type": "array", - "description": "List of domains associated with the site instance", - "items": { - "type": "string" - } - }, - "deployment_order": { - "type": [ - "integer", - "null" - ], - "description": "The order in which this site instance is deployed relative to others.", - "example": 1 - }, - "delete_at": { - "type": [ - "string", - "null" - ], - "format": "date-time", - "description": "The scheduled deletion date-time for this site instance, if set." - }, - "date_marked_for_deletion": { - "type": [ - "string", - "null" - ], - "format": "date-time", - "description": "The date-time when this site instance was marked for deletion." - }, - "protection_mode": { - "type": [ - "object", - "null" - ], - "description": "The current protection mode of the site instance", - "properties": { - "is_enabled": { - "type": "boolean", - "description": "Indicates whether the protection mode is enabled for the site instance" - }, - "is_inherited": { - "type": "boolean", - "description": "Indicates whether the protection mode is inherited from the environment" - } - }, - "required": [ - "is_enabled", - "is_inherited" - ] - } - }, - "required": [ - "site_id", - "environment_id", - "status", - "health_status", - "domains" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323" - } - }, - "site_id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", - "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", - "status": "active", - "health_status": { - "code": "OK", - "summary": "The health status is OK.", - "details": "The site instance is active" - }, - "domains": [ - "example.com", - "example-2.com" - ], - "protection_mode": { - "is_enabled": true, - "is_inherited": true - } - } - } - }, - "links": { - "self": { - "operationId": "findSiteInstanceBySiteIdAndEnvironmentId", - "parameters": { - "siteId": "$request.path.siteId", - "environmentId": "$request.path.environmentId" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - }, - "delete": { - "summary": "Dissociates a site and environment with no grace period.", - "operationId": "deleteSiteInstanceBySiteIdAndEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "site-instances:delete" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Site Instances" - ], - "parameters": [ - { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the site." - }, - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "responses": { - "202": { - "description": "Site instance deletion started", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Site instance deletion started.", - "description": "Confirmation message that the deletion has been started." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323" - } - }, - "message": "Site instance deletion started." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/site-instances/{siteId}.{environmentId}/files": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "post": { - "summary": "Copies files from one environment to another for the specified site instance.", - "operationId": "copySiteInstanceFilesBySiteIdAndEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "site-instances:copy-files" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Site Instances" - ], - "parameters": [ - { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the site." - }, - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "requestBody": { - "description": "Copy site instance files request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "source_environment_id": { - "type": "string", - "description": "The UUID of the environment to copy files from." - } - }, - "required": [ - "source_environment_id" - ], - "additionalProperties": false - }, - "examples": { - "copy_files": { - "summary": "Copy files from another environment", - "value": { - "source_environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323" - } - } - } - } - } - }, - "responses": { - "202": { - "description": "File copy started", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "File copy started.", - "description": "Confirmation message that the file copy has been started." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323" - } - }, - "message": "File copy started." - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/site-instances/{siteId}.{environmentId}/actions/cancel": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "post": { - "summary": "Dissociates a site and environment.", - "operationId": "cancelSiteInstanceBySiteIdAndEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "site-instances:cancel" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Site Instances" - ], - "parameters": [ - { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the site." - }, - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "responses": { - "202": { - "description": "Site instance cancellation started", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Site instance cancellation started.", - "description": "Confirmation message that the cancellation has been started." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323" - } - }, - "message": "Site instance cancellation started." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/site-instances/{siteId}.{environmentId}/actions/enable-protection-mode": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "post": { - "summary": "Enable Site Instance Protection mode.", - "operationId": "enableSiteInstanceProtectionModeBySiteIdAndEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "site-instances:enable-protection-mode" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Site Instances" - ], - "parameters": [ - { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the site." - }, - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "responses": { - "202": { - "description": "Enable protection mode initiated", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Site instance protection mode enabled.", - "description": "Confirmation message" - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323" - } - }, - "message": "Site instance protection mode enabled." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/site-instances/{siteId}.{environmentId}/actions/disable-protection-mode": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "post": { - "summary": "Disable Site Instance Protection mode.", - "operationId": "disableSiteInstanceProtectionModeBySiteIdAndEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "site-instances:disable-protection-mode" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Site Instances" - ], - "parameters": [ - { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the site." - }, - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "responses": { - "202": { - "description": "Disable protection mode initiated", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Site instance protection mode disabled.", - "description": "Confirmation message" - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323" - } - }, - "message": "Site instance protection mode disabled." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/site-instances/{siteId}.{environmentId}/actions/inherit-protection-mode": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "post": { - "summary": "Inherit Site Instance Protection mode.", - "operationId": "inheritSiteInstanceProtectionModeBySiteIdAndEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "site-instances:inherit-protection-mode" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Site Instances" - ], - "parameters": [ - { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the site." - }, - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "responses": { - "202": { - "description": "Inherit protection mode initiated", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Site instance protection mode inherited from environment.", - "description": "Confirmation message" - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323" - } - }, - "message": "Site instance protection mode inherited from environment." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/site-instances/{siteId}.{environmentId}/actions/recover": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "post": { - "summary": "Recovers a site instance that is scheduled for deletion", - "operationId": "recoverSiteInstanceBySiteIdAndEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "site-instances:recover" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Site Instances" - ], - "parameters": [ - { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the site." - }, - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "responses": { - "202": { - "description": "Site instance restoration started", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Site instance restoration started.", - "description": "Confirmation message" - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323" - }, - "parent": { - "href": "https://cloud.acquia.com/api/site-instances" - } - }, - "message": "Site instance restoration started." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/site-instances/{siteId}.{environmentId}/actions/schedule-delete": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "post": { - "summary": "Schedules a site instance for deletion.", - "operationId": "scheduleDeleteSiteInstanceBySiteIdAndEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "site-instances:schedule-delete" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Site Instances" - ], - "parameters": [ - { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the site." - }, - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "responses": { - "202": { - "description": "Site instance deletion scheduled", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Site instance deletion scheduled.", - "description": "Confirmation message" - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323" - }, - "parent": { - "href": "https://cloud.acquia.com/api/site-instances" - } - }, - "message": "Site instance deletion scheduled." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/site-instances/{siteId}.{environmentId}/domains": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves a collection of domains for the specified site instance.", - "operationId": "getDomainsBySiteIdAndEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "site-instances:list-domains" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Domains" - ], - "parameters": [ - { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the site." - }, - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - }, - { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - }, - { - "name": "filter", - "in": "query", - "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" - }, - "example": "status=active;type=standard" - }, - { - "name": "sort", - "in": "query", - "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" - }, - "example": "name,-created_at" - } - ], - "responses": { - "200": { - "description": "Domain collection", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "description": "Domain properties", - "properties": { - "name": { - "type": "string", - "description": "The domain name." - }, - "is_managed": { - "type": "boolean", - "description": "Whether the domain is managed by Acquia." - } - }, - "required": [ - "name", - "is_managed" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2&offset=0{&filter}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2&offset=0{&sort}", - "templated": true - } - }, - "count": 1, - "total": 1, - "pagination": { - "total": 1, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "name": "example.com", - "is_managed": false, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com" - } - } - } - ] - } - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/site-instances/{siteId}.{environmentId}/domains/{domainName}": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves details for the specified domain on a site instance.", - "operationId": "findDomainBySiteIdAndEnvironmentIdAndDomainName", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "site-instances:find-domain" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Domains" - ], - "parameters": [ - { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the site." - }, - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - }, - { - "name": "domainName", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*$" - }, - "description": "The fully-qualified domain name (e.g., www.example.com)." - } - ], - "responses": { - "200": { - "description": "Domain details", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "description": "Domain properties", - "properties": { - "name": { - "type": "string", - "description": "The domain name." - }, - "is_managed": { - "type": "boolean", - "description": "Whether the domain is managed by Acquia." - } - }, - "required": [ - "name", - "is_managed" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "name": "example.com", - "is_managed": false, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findDomainBySiteIdAndEnvironmentIdAndDomainName", - "parameters": { - "siteId": "$request.path.siteId", - "environmentId": "$request.path.environmentId", - "domainName": "$request.path.domainName" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - }, - "put": { - "summary": "Adds a domain to the specified site instance.", - "operationId": "saveDomainBySiteIdAndEnvironmentIdAndDomainName", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "site-instances:update-domain" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Domains" - ], - "parameters": [ - { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the site." - }, - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - }, - { - "name": "domainName", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*$" - }, - "description": "The fully-qualified domain name (e.g., www.example.com)." - } - ], - "responses": { - "202": { - "description": "Domain addition started", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Domain addition started.", - "description": "Confirmation message that the domain addition has been started." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com" - } - }, - "message": "Domain addition started." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - }, - "delete": { - "summary": "Removes a domain from the specified site instance.", - "operationId": "deleteDomainBySiteIdAndEnvironmentIdAndDomainName", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "site-instances:delete-domain" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Domains" - ], - "parameters": [ - { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the site." - }, - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - }, - { - "name": "domainName", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*$" - }, - "description": "The fully-qualified domain name (e.g., www.example.com)." - } - ], - "responses": { - "202": { - "description": "Domain removal started", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Domain removal started.", - "description": "Confirmation message that the domain removal has been started." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com" - } - }, - "message": "Domain removal started." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/site-instances/{siteId}.{environmentId}/domains/{domainName}/status": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves the DNS status for the specified domain on a site instance.", - "operationId": "findDomainStatusBySiteIdAndEnvironmentIdAndDomainName", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "site-instances:find-domain-status" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Domains" - ], - "parameters": [ - { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the site." - }, - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - }, - { - "name": "domainName", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*$" - }, - "description": "The fully-qualified domain name (e.g., www.example.com)." - } - ], - "responses": { - "200": { - "description": "Domain DNS status details", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "description": "Domain DNS status properties", - "properties": { - "hostname": { - "type": "string", - "description": "The domain name." - }, - "site_id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Identifier of the site this domain belongs to." - }, - "environment_id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Identifier of the environment this domain belongs to." - }, - "ip_addresses": { - "type": "array", - "description": "List of IP addresses resolving for this domain.", - "items": { - "type": "string" - } - }, - "cnames": { - "type": "array", - "description": "List of CNAME records resolving for this domain.", - "items": { - "type": "string" - } - }, - "flags": { - "type": "object", - "description": "Status flags for the domain.", - "properties": { - "default": { - "type": "boolean", - "description": "Whether this is the default domain." - }, - "active": { - "type": "boolean", - "description": "Whether the domain is active." - }, - "dns_resolves": { - "type": "boolean", - "description": "Whether the domain DNS resolves correctly." - }, - "acquia_hosted": { - "type": "boolean", - "description": "Whether the domain is hosted on Acquia infrastructure." - } - }, - "required": [ - "default", - "active", - "dns_resolves", - "acquia_hosted" - ] - } - }, - "required": [ - "hostname", - "site_id", - "environment_id", - "ip_addresses", - "cnames", - "flags" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "hostname": "example.com", - "site_id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", - "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", - "ip_addresses": [ - "203.0.113.10" - ], - "cnames": [], - "flags": { - "default": false, - "active": true, - "dns_resolves": true, - "acquia_hosted": true - }, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com/status" - } - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/site-instances/{siteId}.{environmentId}/database": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves database details for the specified site instance.", - "operationId": "findDatabaseBySiteIdAndEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "site-instances:find-database" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Site Instance Databases" - ], - "parameters": [ - { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the site." - }, - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "responses": { - "200": { - "description": "Database details", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "description": "Database properties", - "properties": { - "database_name": { - "type": "string", - "description": "The name of the database." - }, - "database_role": { - "type": "string", - "description": "The role of the database (e.g. the site username)." - } - }, - "required": [ - "database_name", - "database_role" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "database_name": "site_dev", - "database_role": "site_dev_user", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findDatabaseBySiteIdAndEnvironmentId", - "parameters": { - "siteId": "$request.path.siteId", - "environmentId": "$request.path.environmentId" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - }, - "post": { - "summary": "Copies a database from another environment to the specified site instance.", - "operationId": "copySiteInstanceDatabaseBySiteIdAndEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "site-instances:copy-database" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Site Instance Databases" - ], - "parameters": [ - { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the site." - }, - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "requestBody": { - "description": "Copy site instance database request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "source_environment_id": { - "type": "string", - "description": "The UUID of the environment to copy the database from." - } - }, - "required": [ - "source_environment_id" - ], - "additionalProperties": false - }, - "examples": { - "copy_database": { - "summary": "Copy database from another environment", - "value": { - "source_environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323" - } - } - } - } - } - }, - "responses": { - "202": { - "description": "Database copy started", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Database copy started.", - "description": "Confirmation message that the database copy has been started." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database" - } - }, - "message": "Database copy started." - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/site-instances/{siteId}.{environmentId}/database/connection": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves database connection credentials for the specified site instance.", - "operationId": "findDatabaseConnectionBySiteIdAndEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "site-instances:find-database-connection" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Site Instance Databases" - ], - "parameters": [ - { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the site." - }, - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "responses": { - "200": { - "description": "Database connection credential details", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "description": "Database connection credential properties", - "properties": { - "db_host": { - "type": "string", - "description": "The database host." - }, - "name": { - "type": "string", - "description": "The database name." - }, - "password": { - "type": "string", - "description": "The database password." - }, - "user_name": { - "type": "string", - "description": "The database username." - }, - "ssh_host": { - "type": "string", - "description": "The SSH host for tunneling to the database." - } - }, - "required": [ - "db_host", - "name", - "password", - "user_name", - "ssh_host" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "db_host": "db.example.com", - "name": "site_dev", - "password": "s3cr3t", - "user_name": "site_dev_user", - "ssh_host": "site.dev.ssh.hosted.acquia-sites.com", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/connection" - } - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/site-instances/{siteId}.{environmentId}/database/backups": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves a collection of database backups for the specified site instance.", - "operationId": "getDatabaseBackupsBySiteIdAndEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "site-instances:list-database-backups" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Site Instance Databases" - ], - "parameters": [ - { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the site." - }, - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - }, - { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - }, - { - "name": "filter", - "in": "query", - "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" - }, - "example": "status=active;type=standard" - }, - { - "name": "sort", - "in": "query", - "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" - }, - "example": "name,-created_at" - } - ], - "responses": { - "200": { - "description": "Database backup collection", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "description": "Database backup properties", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Unique identifier for the database backup." - }, - "database_id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Identifier of the database this backup belongs to." - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "Timestamp when the backup was created." - }, - "type": { - "type": "string", - "enum": [ - "DAILY", - "ON_DEMAND" - ], - "description": "The type of backup." - } - }, - "required": [ - "id", - "database_id", - "created_at", - "type" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2&offset=0{&filter}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2&offset=0{&sort}", - "templated": true - } - }, - "count": 1, - "total": 1, - "pagination": { - "total": 1, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", - "database_id": "b2c3d4e5-f6a7-8901-bcde-f01234567891", - "created_at": "2025-04-01T02:00:00.000Z", - "type": "DAILY", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups/a1b2c3d4-e5f6-7890-abcd-ef1234567890" - } - } - } - ] - } - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - }, - "post": { - "summary": "Creates a database backup for the specified site instance.", - "operationId": "createDatabaseBackupBySiteIdAndEnvironmentId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "site-instances:create-database-backup" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Site Instance Databases" - ], - "parameters": [ - { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the site." - }, - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "responses": { - "202": { - "description": "Database backup creation started", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Database backup started.", - "description": "Confirmation message that the database backup has been started." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups" - } - }, - "message": "Database backup started." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/site-instances/{siteId}.{environmentId}/database/backups/{backupId}": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves details for the specified database backup.", - "operationId": "findDatabaseBackupBySiteIdAndEnvironmentIdAndBackupId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "site-instances:find-database-backup" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Site Instance Databases" - ], - "parameters": [ - { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the site." - }, - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - }, - { - "name": "backupId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Database backup identifier" - } - ], - "responses": { - "200": { - "description": "Database backup details", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "description": "Database backup properties", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Unique identifier for the database backup." - }, - "database_id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Identifier of the database this backup belongs to." - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "Timestamp when the backup was created." - }, - "type": { - "type": "string", - "enum": [ - "DAILY", - "ON_DEMAND" - ], - "description": "The type of backup." - } - }, - "required": [ - "id", - "database_id", - "created_at", - "type" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", - "database_id": "b2c3d4e5-f6a7-8901-bcde-f01234567891", - "created_at": "2025-04-01T02:00:00.000Z", - "type": "DAILY", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups/a1b2c3d4-e5f6-7890-abcd-ef1234567890" - }, - "download": { - "href": "https://s3.amazonaws.com/acquia-backups/backup-a1b2c3d4.sql.gz?X-Amz-Expires=3600&X-Amz-Signature=abc123" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findDatabaseBackupBySiteIdAndEnvironmentIdAndBackupId", - "parameters": { - "siteId": "$request.path.siteId", - "environmentId": "$request.path.environmentId", - "backupId": "$request.path.backupId" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - }, - "delete": { - "summary": "Deletes the specified database backup.", - "operationId": "deleteDatabaseBackupBySiteIdAndEnvironmentIdAndBackupId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "site-instances:delete-database-backup" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Site Instance Databases" - ], - "parameters": [ - { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the site." - }, - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - }, - { - "name": "backupId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Database backup identifier" - } - ], - "responses": { - "202": { - "description": "Database backup deletion started", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Database backup deletion started.", - "description": "Confirmation message that the deletion has been started." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups/a1b2c3d4-e5f6-7890-abcd-ef1234567890" - } - }, - "message": "Database backup deletion started." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/site-instances/{siteId}.{environmentId}/database/backups/{backupId}/actions/restore": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "post": { - "summary": "Restores the specified database backup to the site instance.", - "operationId": "restoreDatabaseBackupBySiteIdAndEnvironmentIdAndBackupId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "site-instances:restore-database-backup" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "tags": [ - "Environment_Service_API_Site Instance Databases" - ], - "parameters": [ - { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the site." - }, - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - }, - { - "name": "backupId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Database backup identifier" - } - ], - "responses": { - "202": { - "description": "Database backup restore started", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Database restore started.", - "description": "Confirmation message that the restore has been started." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups/a1b2c3d4-e5f6-7890-abcd-ef1234567890" - } - }, - "message": "Database restore started." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/deployments/{deploymentId}": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves the status of a deployment by deployment ID.", - "operationId": "findDeploymentByDeploymentId", - "tags": [ - "Environment_Service_API_Deployments" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "deployments:find" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "parameters": [ - { - "name": "deploymentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the deployment." - } - ], - "responses": { - "200": { - "description": "Deployment details", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "description": "Deployment properties", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Unique identifier for the deployment." - }, - "environment_id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Identifier of the environment this deployment belongs to." - }, - "status": { - "type": "string", - "description": "Current status of the deployment.", - "enum": [ - "waiting", - "received", - "started", - "done", - "failed", - "error", - "killed" - ] - }, - "code_reference": { - "type": "string", - "description": "The code reference (e.g. branch or tag) deployed." - }, - "run_hooks": { - "type": "boolean", - "description": "Whether deployment hooks were run." - }, - "hooks_argument": { - "type": [ - "string", - "null" - ], - "description": "Additional arguments passed to deployment hooks." - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "Timestamp when the deployment was created." - }, - "started_at": { - "type": [ - "string", - "null" - ], - "format": "date-time", - "description": "Timestamp when the deployment started." - }, - "completed_at": { - "type": [ - "string", - "null" - ], - "format": "date-time", - "description": "Timestamp when the deployment completed." - }, - "sender_id": { - "type": [ - "string", - "null" - ], - "description": "Identifier of the user or system that initiated the deployment." - }, - "logs": { - "type": [ - "string", - "null" - ], - "description": "Deployment log output." - } - }, - "required": [ - "id", - "environment_id", - "status", - "code_reference", - "run_hooks", - "created_at" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "id": "e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3", - "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", - "status": "started", - "code_reference": "tags/v1.0.0", - "run_hooks": true, - "hooks_argument": "--skip-db-update", - "created_at": "2025-04-01T13:01:06.603Z", - "started_at": "2025-04-01T13:01:10.123Z", - "completed_at": null, - "sender_id": null, - "logs": null, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" - }, - "environment": { - "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findDeploymentByDeploymentId", - "parameters": { - "deploymentId": "$request.path.deploymentId" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/deployments/{deploymentId}/actions/stop": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "post": { - "summary": "Stops a deployment by sending a stop request.", - "operationId": "stopDeploymentByDeploymentId", - "tags": [ - "Environment_Service_API_Deployments" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "deployments:stop" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "parameters": [ - { - "name": "deploymentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the deployment." - } - ], - "responses": { - "202": { - "description": "Deployment stop initiated", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Deployment stop initiated.", - "description": "Confirmation message that the deployment stop has been initiated." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" - } - }, - "message": "Deployment stop initiated." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/deployments/{deploymentId}/actions/terminate": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "post": { - "summary": "Terminates a deployment immediately.", - "operationId": "terminateDeploymentByDeploymentId", - "tags": [ - "Environment_Service_API_Deployments" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "deployments:terminate" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "parameters": [ - { - "name": "deploymentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the deployment." - } - ], - "responses": { - "202": { - "description": "Deployment termination is initiated", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Deployment termination initiated.", - "description": "Confirmation message that the deployment termination has been initiated." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" - } - }, - "message": "Deployment termination initiated." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/environments/{environmentId}/domain-patterns": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves a collection of domain patterns for the specified environment.", - "operationId": "getDomainPatternsByEnvironmentId", - "tags": [ - "Environment_Service_API_Domain Patterns" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "environments:list-domain-patterns" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "parameters": [ - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - }, - { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - }, - { - "name": "sort", - "in": "query", - "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" - }, - "example": "name,-created_at" - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Unique identifier for the domain pattern." - }, - "pattern": { - "type": "string", - "maxLength": 455, - "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", - "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].acme.com/app). The [site-name] token is mandatory; [environment-name] is optional at environment level. Domain rules (enforced in service layer): ≤ 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] ≤ 14 chars). One pattern per environment.\n", - "example": "[site-name].acme.com" - } - }, - "required": [ - "id", - "pattern" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "examples": { - "domain_pattern_collection": { - "summary": "Domain pattern collection", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns" - }, - "limit": { - "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25{&offset}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25&offset=0{&sort}", - "templated": true - } - }, - "count": 1, - "total": 1, - "pagination": { - "total": 1, - "limit": 25, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "11111111-1111-1111-1111-111111111111", - "pattern": "[site-name].acme.com", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111" - } - } - } - ] - } - } - }, - "domain_pattern_collection_empty": { - "summary": "Empty domain pattern collection", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns" - }, - "limit": { - "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25{&offset}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25&offset=0{&sort}", - "templated": true - } - }, - "count": 0, - "total": 0, - "pagination": { - "total": 0, - "limit": 25, - "offset": 0 - }, - "_embedded": { - "items": [] - } - } - } - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - }, - "post": { - "summary": "Creates a domain pattern for the specified environment.", - "operationId": "createDomainPatternByEnvironmentId", - "tags": [ - "Environment_Service_API_Domain Patterns" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "environments:create-domain-pattern" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "parameters": [ - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - } - ], - "requestBody": { - "description": "Create domain pattern request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "pattern": { - "type": "string", - "maxLength": 455, - "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", - "description": "The domain pattern to apply to all associated sites in this environment, optionally followed by a single path segment. The [site-name] token is mandatory; [environment-name] is optional. Domain ≤ 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per environment) are enforced at the service layer.\n", - "example": "[site-name].acme.com" - } - }, - "required": [ - "pattern" - ], - "additionalProperties": false - }, - "examples": { - "create_domain_pattern": { - "summary": "Create a domain pattern", - "value": { - "pattern": "[site-name].acme.com" - } - } - } - } - } - }, - "responses": { - "202": { - "description": "Domain pattern creation initiated.", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "The domain pattern is being applied to all associated sites in this environment.", - "description": "Confirmation message that the domain pattern is being applied." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111" - } - }, - "message": "The domain pattern is being applied to all associated sites in this environment." - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/environments/{environmentId}/domain-patterns/{patternId}": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Retrieves a domain pattern by environment ID and pattern ID.", - "operationId": "findDomainPatternByEnvironmentIdAndPatternId", - "tags": [ - "Environment_Service_API_Domain Patterns" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "environments:find-domain-pattern" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "parameters": [ - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - }, - { - "name": "patternId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the domain pattern." - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Unique identifier for the domain pattern." - }, - "pattern": { - "type": "string", - "maxLength": 455, - "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", - "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].acme.com/app). The [site-name] token is mandatory; [environment-name] is optional at environment level. Domain rules (enforced in service layer): ≤ 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] ≤ 14 chars). One pattern per environment.\n", - "example": "[site-name].acme.com" - } - }, - "required": [ - "id", - "pattern" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "id": "11111111-1111-1111-1111-111111111111", - "pattern": "[site-name].acme.com", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findDomainPatternByEnvironmentIdAndPatternId", - "parameters": { - "environmentId": "$request.path.environmentId", - "patternId": "$request.path.patternId" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - }, - "put": { - "summary": "Updates a domain pattern for the specified environment.", - "operationId": "updateDomainPatternByEnvironmentIdAndPatternId", - "tags": [ - "Environment_Service_API_Domain Patterns" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "environments:update-domain-pattern" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "parameters": [ - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - }, - { - "name": "patternId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the domain pattern." - } - ], - "requestBody": { - "description": "Update domain pattern request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "pattern": { - "type": "string", - "maxLength": 455, - "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", - "description": "The updated domain pattern to apply to all associated sites in this environment, optionally followed by a single path segment. The [site-name] token is mandatory. Domain ≤ 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per environment) are enforced at the service layer.\n" - } - }, - "required": [ - "pattern" - ], - "additionalProperties": false, - "minProperties": 1 - }, - "examples": { - "update_domain_pattern": { - "summary": "Update a domain pattern", - "value": { - "pattern": "[site-name].staging.acme.com" - } - } - } - } - } - }, - "responses": { - "202": { - "description": "Domain pattern update initiated.", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "The domain pattern update is being applied to all associated sites in this environment.", - "description": "Confirmation message that the domain pattern update is being applied." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111" - } - }, - "message": "The domain pattern update is being applied to all associated sites in this environment." - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - }, - "delete": { - "summary": "Deletes a domain pattern for the specified environment. Engineering role only.", - "operationId": "deleteDomainPatternByEnvironmentIdAndPatternId", - "tags": [ - "Environment_Service_API_Domain Patterns" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "environments:delete-domain-pattern" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "environment-service" - } - }, - "parameters": [ - { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - }, - { - "name": "patternId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the domain pattern." - } - ], - "responses": { - "202": { - "description": "Domain pattern deletion initiated. The 202 covers two async operations: (1) removal of the pattern record and (2) a bulk cleanup that disassociates any URLs already generated from this pattern on all associated site instances in the environment. Both operations complete before the final settled state is observable.\n", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "The domain pattern is being removed from all associated sites in this environment.", - "description": "Confirmation message that the domain pattern is being removed." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111" - } - }, - "message": "The domain pattern is being removed from all associated sites in this environment." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Environment_Service_API_BearerAuth": [] - } - ] - } - }, - "/subscriptions/{subscriptionId}/sso-domains": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "post": { - "operationId": "createSsoDomainBySubscriptionId", - "summary": "Create a new domain for federated SSO.", - "tags": [ - "Federated_Authentication_API_Domains" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "subscriptions:create-sso-domain" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "identity-service" - } - }, - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the subscription." - } - ], - "requestBody": { - "description": "Request body for creating a new domain.", - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "domain": { - "type": "string", - "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", - "description": "The domain name to create (e.g., \"acme.com\")." - } - }, - "required": [ - "domain" - ], - "additionalProperties": false - }, - "example": { - "domain": "acme.com" - } - } - } - }, - "responses": { - "202": { - "description": "Domain creation accepted. The domain is being added to your subscription. To complete verification, add the provided DNS TXT record and call the verify action.", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "const": "Domain creation has been accepted." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sso-domains/dom-456" - } - }, - "message": "Domain creation has been accepted." - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Federated_Authentication_API_BearerAuth": [] - } - ] - }, - "get": { - "summary": "Return a list of domains for a subscription.", - "operationId": "getSsoDomainsBySubscriptionId", - "tags": [ - "Federated_Authentication_API_Domains" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "subscriptions:list-sso-domains" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "identity-service" - } - }, - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the subscription." - }, - { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - }, - { - "name": "sort", - "in": "query", - "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" - }, - "example": "name,-created_at" - }, - { - "name": "filter", - "in": "query", - "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" - }, - "example": "status=active;type=standard" - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "properties": { - "domain_id": { - "type": "string", - "description": "Unique identifier for the domain." - }, - "domain": { - "type": "string", - "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", - "description": "The domain name (e.g., \"acme.com\")." - }, - "subscription_id": { - "type": "string", - "description": "Unique identifier for the subscription that the domain belongs to." - }, - "health": { - "type": "object", - "description": "The overall verification health of the domain. Uses the same code semantics as the platform email domain-verification system: `200` verified, `202` verification pending or in progress, `404` DNS record not found or could not be validated.", - "properties": { - "code": { - "type": "string", - "enum": [ - "200", - "202", - "404" - ], - "description": "Machine-readable verification status code. `200` — verified. `202` — verification pending or in progress; retry after propagation. `404` — DNS TXT record not found or does not match expected value." - }, - "summary": { - "type": "string", - "description": "Short human-readable label for the verification state (e.g., \"Verified\", \"Verification pending\", \"Missing DNS record\")." - }, - "details": { - "type": "string", - "description": "Actionable explanation of the current state. For `404`, describes what was checked and what the customer should do next." - } - }, - "required": [ - "code", - "summary", - "details" - ] - }, - "verification_record": { - "type": "object", - "description": "DNS TXT record the customer must publish to verify domain ownership.", - "properties": { - "type": { - "type": "string", - "const": "TXT", - "description": "DNS record type." - }, - "host": { - "type": "string", - "description": "DNS record host name." - }, - "value": { - "type": "string", - "description": "Expected DNS record value." - }, - "health": { - "type": "object", - "description": "Verification health specific to this DNS record. Anchors the failure reason to the exact record the customer needs to fix, matching the per-record health pattern used in platform email domain verification.", - "properties": { - "code": { - "type": "string", - "enum": [ - "200", - "202", - "404" - ], - "description": "`200` — record found and value matches. `202` — check in progress. `404` — record not found or value does not match." - }, - "summary": { - "type": "string", - "description": "Short human-readable label for this record's verification state." - }, - "details": { - "type": "string", - "description": "Actionable explanation; for `404`, states what was checked and what to fix." - } - }, - "required": [ - "code", - "summary", - "details" - ] - } - }, - "required": [ - "type", - "host", - "value", - "health" - ] - }, - "verified_at": { - "type": "string", - "format": "date-time", - "description": "Timestamp when the domain was successfully verified. Present only when `health.code` is `200`." - } - }, - "required": [ - "domain_id", - "domain", - "subscription_id", - "health", - "verification_record" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "examples": { - "domain_response": { - "summary": "Domain collection with pagination", - "description": "Two domains in different states: one verified and in use by a policy (carries `identity_providers` link), one pending verification (carries `verify` link).", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?limit=2&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?limit=2{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?limit=2&offset=0{&filter}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?limit=2&offset=0{&sort}", - "templated": true - }, - "next": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?offset=2&limit=2" - } - }, - "count": 2, - "total": 3, - "pagination": { - "total": 3, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "domain_id": "dom-456", - "domain": "acme.com", - "subscription_id": "sub-123", - "health": { - "code": "200", - "summary": "Verified", - "details": "The DNS TXT record has been confirmed and the domain is verified." - }, - "verification_record": { - "type": "TXT", - "host": "_acquia-challenge.acme.com", - "value": "abc123def456", - "health": { - "code": "200", - "summary": "Verified", - "details": "The TXT record at _acquia-challenge.acme.com matches the expected value." - } - }, - "verified_at": "2026-04-15T10:30:00Z", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sso-domains/dom-456" - }, - "identity_providers": { - "href": "https://cloud.acquia.com/api/identity-providers?filter=domain_id%3Ddom-456" - } - } - }, - { - "domain_id": "dom-789", - "domain": "acme.corp", - "subscription_id": "sub-123", - "health": { - "code": "202", - "summary": "Verification pending", - "details": "Acquia is waiting to confirm the DNS TXT record. Ensure the record has been published and allow time for DNS propagation, then retry verification." - }, - "verification_record": { - "type": "TXT", - "host": "_acquia-challenge.acme.corp", - "value": "xyz789abc123", - "health": { - "code": "202", - "summary": "Check in progress", - "details": "The TXT record check has not yet completed." - } - }, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sso-domains/dom-789" - }, - "verify": { - "href": "https://cloud.acquia.com/api/sso-domains/dom-789/actions/verify" - } - } - } - ] - } - } - } - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Federated_Authentication_API_BearerAuth": [] - } - ] - } - }, - "/subscriptions/{subscriptionId}/identity-providers": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "post": { - "operationId": "createIdentityProviderBySubscriptionId", - "summary": "Create a new Identity Provider.", - "tags": [ - "Federated_Authentication_API_Identity Providers" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "subscriptions:create-identity-provider" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "identity-service" - } - }, - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the subscription." - } - ], - "requestBody": { - "description": "Request body for creating a new Identity Provider.", - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "idp_entity_id": { - "type": "string", - "format": "uri", - "description": "The Identity Provider Entity ID." - }, - "label": { - "type": "string", - "description": "The name of the Identity Provider." - }, - "sso_url": { - "type": "string", - "format": "uri", - "description": "The SSO URL for this IdP." - }, - "certificate": { - "type": "string", - "description": "The certificate for this IdP." - } - }, - "required": [ - "label", - "idp_entity_id", - "sso_url", - "certificate" - ], - "additionalProperties": false - }, - "example": { - "label": "Acme Corporation Azure AD", - "idp_entity_id": "https://idp.acme.com/saml", - "sso_url": "https://acme.com/sso", - "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----" - } - } - } - }, - "responses": { - "202": { - "description": "Identity Provider creation initiated. The Identity Provider is being provisioned. Poll the Identity Provider resource to check when it becomes active.", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "const": "Identity Provider creation has been accepted." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f" - } - }, - "message": "Identity Provider creation has been accepted." - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Federated_Authentication_API_BearerAuth": [] - } - ] - }, - "get": { - "summary": "Return a list of Identity Providers for a subscription.", - "operationId": "getIdentityProvidersBySubscriptionId", - "tags": [ - "Federated_Authentication_API_Identity Providers" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "subscriptions:list-identity-providers" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "identity-service" - } - }, - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the subscription." - }, - { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - }, - { - "name": "sort", - "in": "query", - "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" - }, - "example": "name,-created_at" - }, - { - "name": "filter", - "in": "query", - "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" - }, - "example": "status=active;type=standard" - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "properties": { - "identity_provider_id": { - "type": "string", - "description": "Unique identifier for the identity provider." - }, - "label": { - "type": "string", - "description": "The name of the Identity Provider." - }, - "subscription_id": { - "type": "string", - "description": "Unique identifier for the subscription that the Identity Provider belongs to." - }, - "idp_entity_id": { - "type": "string", - "format": "uri", - "description": "The Identity Provider Entity ID." - }, - "sp_entity_id": { - "type": "string", - "format": "uri", - "description": "The Service Provider Entity ID." - }, - "sso_url": { - "type": "string", - "format": "uri", - "description": "The Single Sign-On URL for the Identity Provider." - }, - "certificate": { - "type": "string", - "description": "The X.509 certificate used for SAML authentication." - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "Timestamp when the Identity Provider was created." - } - }, - "required": [ - "identity_provider_id", - "label", - "subscription_id", - "idp_entity_id", - "sp_entity_id", - "sso_url", - "certificate", - "created_at" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "examples": { - "identity_provider_response": { - "summary": "Identity provider collection with pagination", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2&offset=2" - }, - "limit": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?offset=2{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2&offset=2{&filter}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2&offset=2{&sort}", - "templated": true - }, - "prev": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2&offset=0" - }, - "next": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?offset=4&limit=2" - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "identity_provider_id": "908914ec-2354-4fb1-9298-637247eccc3a", - "label": "Acme Corporation Azure AD", - "subscription_id": "sub-123", - "idp_entity_id": "https://idp.acme.com/saml", - "sp_entity_id": "https://sp.acme.com/saml", - "sso_url": "https://acme.com/sso", - "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", - "created_at": "2026-04-15T11:00:00Z", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a" - }, - "sso_policy": { - "href": "https://cloud.acquia.com/api/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a/policies/sso" - } - } - }, - { - "identity_provider_id": "123456ec-2354-4fb1-9298-637247eccc3b", - "label": "Acme Research Ping Identity", - "subscription_id": "sub-123", - "idp_entity_id": "https://idp-research.acme.com/saml", - "sp_entity_id": "https://sp-research.acme.com/saml", - "sso_url": "https://research.acme.com/sso", - "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", - "created_at": "2026-04-20T14:20:00Z", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/identity-providers/123456ec-2354-4fb1-9298-637247eccc3b" - }, - "sso_policy": { - "href": "https://cloud.acquia.com/api/identity-providers/123456ec-2354-4fb1-9298-637247eccc3b/policies/sso" - } - } - } - ] - } - } - } - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Federated_Authentication_API_BearerAuth": [] - } - ] - } - }, - "/sso-domains": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Return a list of all accessible domains.", - "operationId": "getSsoDomains", - "tags": [ - "Federated_Authentication_API_Domains" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "sso-domains:list" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "identity-service" - } - }, - "parameters": [ - { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - }, - { - "name": "sort", - "in": "query", - "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" - }, - "example": "name,-created_at" - }, - { - "name": "filter", - "in": "query", - "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" - }, - "example": "status=active;type=standard" - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "properties": { - "domain_id": { - "type": "string", - "description": "Unique identifier for the domain." - }, - "domain": { - "type": "string", - "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", - "description": "The domain name (e.g., \"acme.com\")." - }, - "subscription_id": { - "type": "string", - "description": "Unique identifier for the subscription that the domain belongs to." - }, - "health": { - "type": "object", - "description": "The overall verification health of the domain. Uses the same code semantics as the platform email domain-verification system: `200` verified, `202` verification pending or in progress, `404` DNS record not found or could not be validated.", - "properties": { - "code": { - "type": "string", - "enum": [ - "200", - "202", - "404" - ], - "description": "Machine-readable verification status code. `200` — verified. `202` — verification pending or in progress; retry after propagation. `404` — DNS TXT record not found or does not match expected value." - }, - "summary": { - "type": "string", - "description": "Short human-readable label for the verification state (e.g., \"Verified\", \"Verification pending\", \"Missing DNS record\")." - }, - "details": { - "type": "string", - "description": "Actionable explanation of the current state. For `404`, describes what was checked and what the customer should do next." - } - }, - "required": [ - "code", - "summary", - "details" - ] - }, - "verification_record": { - "type": "object", - "description": "DNS TXT record the customer must publish to verify domain ownership.", - "properties": { - "type": { - "type": "string", - "const": "TXT", - "description": "DNS record type." - }, - "host": { - "type": "string", - "description": "DNS record host name." - }, - "value": { - "type": "string", - "description": "Expected DNS record value." - }, - "health": { - "type": "object", - "description": "Verification health specific to this DNS record. Anchors the failure reason to the exact record the customer needs to fix, matching the per-record health pattern used in platform email domain verification.", - "properties": { - "code": { - "type": "string", - "enum": [ - "200", - "202", - "404" - ], - "description": "`200` — record found and value matches. `202` — check in progress. `404` — record not found or value does not match." - }, - "summary": { - "type": "string", - "description": "Short human-readable label for this record's verification state." - }, - "details": { - "type": "string", - "description": "Actionable explanation; for `404`, states what was checked and what to fix." - } - }, - "required": [ - "code", - "summary", - "details" - ] - } - }, - "required": [ - "type", - "host", - "value", - "health" - ] - }, - "verified_at": { - "type": "string", - "format": "date-time", - "description": "Timestamp when the domain was successfully verified. Present only when `health.code` is `200`." - } - }, - "required": [ - "domain_id", - "domain", - "subscription_id", - "health", - "verification_record" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "examples": { - "domain_response": { - "summary": "Domain collection with pagination", - "description": "Two domains in different states: one verified and in use by a policy (carries `identity_providers` link), one pending verification (carries `verify` link).", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?limit=2&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?limit=2{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?limit=2&offset=0{&filter}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?limit=2&offset=0{&sort}", - "templated": true - }, - "next": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?offset=2&limit=2" - } - }, - "count": 2, - "total": 3, - "pagination": { - "total": 3, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "domain_id": "dom-456", - "domain": "acme.com", - "subscription_id": "sub-123", - "health": { - "code": "200", - "summary": "Verified", - "details": "The DNS TXT record has been confirmed and the domain is verified." - }, - "verification_record": { - "type": "TXT", - "host": "_acquia-challenge.acme.com", - "value": "abc123def456", - "health": { - "code": "200", - "summary": "Verified", - "details": "The TXT record at _acquia-challenge.acme.com matches the expected value." - } - }, - "verified_at": "2026-04-15T10:30:00Z", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sso-domains/dom-456" - }, - "identity_providers": { - "href": "https://cloud.acquia.com/api/identity-providers?filter=domain_id%3Ddom-456" - } - } - }, - { - "domain_id": "dom-789", - "domain": "acme.corp", - "subscription_id": "sub-123", - "health": { - "code": "202", - "summary": "Verification pending", - "details": "Acquia is waiting to confirm the DNS TXT record. Ensure the record has been published and allow time for DNS propagation, then retry verification." - }, - "verification_record": { - "type": "TXT", - "host": "_acquia-challenge.acme.corp", - "value": "xyz789abc123", - "health": { - "code": "202", - "summary": "Check in progress", - "details": "The TXT record check has not yet completed." - } - }, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sso-domains/dom-789" - }, - "verify": { - "href": "https://cloud.acquia.com/api/sso-domains/dom-789/actions/verify" - } - } - } - ] - } - } - } - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Federated_Authentication_API_BearerAuth": [] - } - ] - } - }, - "/sso-domains/{domainId}": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Return details about a specific domain.", - "operationId": "findSsoDomainBySsoDomainId", - "tags": [ - "Federated_Authentication_API_Domains" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "sso-domains:find" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "identity-service" - } - }, - "parameters": [ - { - "name": "domainId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the domain." - } - ], - "responses": { - "200": { - "description": "OK. The `_links` object always contains `self`. Additional links are state-conditional: `verify` is present when `health.code` is `202` or `404` (POST it to initiate or retry DNS TXT record verification); `identity_providers` is present when the domain is referenced by one or more Identity Provider policies (follows to a filtered list of those IdPs; when present the domain cannot be deleted — remove it from all policies first).", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "domain_id": { - "type": "string", - "description": "Unique identifier for the domain." - }, - "domain": { - "type": "string", - "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", - "description": "The domain name (e.g., \"acme.com\")." - }, - "subscription_id": { - "type": "string", - "description": "Unique identifier for the subscription that the domain belongs to." - }, - "health": { - "type": "object", - "description": "The overall verification health of the domain. Uses the same code semantics as the platform email domain-verification system: `200` verified, `202` verification pending or in progress, `404` DNS record not found or could not be validated.", - "properties": { - "code": { - "type": "string", - "enum": [ - "200", - "202", - "404" - ], - "description": "Machine-readable verification status code. `200` — verified. `202` — verification pending or in progress; retry after propagation. `404` — DNS TXT record not found or does not match expected value." - }, - "summary": { - "type": "string", - "description": "Short human-readable label for the verification state (e.g., \"Verified\", \"Verification pending\", \"Missing DNS record\")." - }, - "details": { - "type": "string", - "description": "Actionable explanation of the current state. For `404`, describes what was checked and what the customer should do next." - } - }, - "required": [ - "code", - "summary", - "details" - ] - }, - "verification_record": { - "type": "object", - "description": "DNS TXT record the customer must publish to verify domain ownership.", - "properties": { - "type": { - "type": "string", - "const": "TXT", - "description": "DNS record type." - }, - "host": { - "type": "string", - "description": "DNS record host name." - }, - "value": { - "type": "string", - "description": "Expected DNS record value." - }, - "health": { - "type": "object", - "description": "Verification health specific to this DNS record. Anchors the failure reason to the exact record the customer needs to fix, matching the per-record health pattern used in platform email domain verification.", - "properties": { - "code": { - "type": "string", - "enum": [ - "200", - "202", - "404" - ], - "description": "`200` — record found and value matches. `202` — check in progress. `404` — record not found or value does not match." - }, - "summary": { - "type": "string", - "description": "Short human-readable label for this record's verification state." - }, - "details": { - "type": "string", - "description": "Actionable explanation; for `404`, states what was checked and what to fix." - } - }, - "required": [ - "code", - "summary", - "details" - ] - } - }, - "required": [ - "type", - "host", - "value", - "health" - ] - }, - "verified_at": { - "type": "string", - "format": "date-time", - "description": "Timestamp when the domain was successfully verified. Present only when `health.code` is `200`." - } - }, - "required": [ - "domain_id", - "domain", - "subscription_id", - "health", - "verification_record" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "examples": { - "pending_verification": { - "summary": "Domain awaiting DNS verification", - "description": "A newly created domain whose DNS TXT record has not yet been confirmed. `health.code` is `202`; the `verify` link is present so the client can trigger or retry the check. `identity_providers` is absent because no policy can reference an unverified domain.", - "value": { - "domain_id": "dom-789", - "domain": "acme.corp", - "subscription_id": "sub-123", - "health": { - "code": "202", - "summary": "Verification pending", - "details": "Acquia is waiting to confirm the DNS TXT record. Ensure the record has been published and allow time for DNS propagation, then retry verification." - }, - "verification_record": { - "type": "TXT", - "host": "_acquia-challenge.acme.corp", - "value": "xyz789abc123", - "health": { - "code": "202", - "summary": "Check in progress", - "details": "The TXT record check has not yet completed." - } - }, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sso-domains/dom-789" - }, - "verify": { - "href": "https://cloud.acquia.com/api/sso-domains/dom-789/actions/verify" - } - } - } - }, - "failed_verification": { - "summary": "Domain verification failed — DNS record not found", - "description": "A domain whose TXT record could not be found. `health.code` is `404`; `details` names the exact record to check. The `verify` link is present so the client can retry after fixing the DNS entry.", - "value": { - "domain_id": "dom-789", - "domain": "acme.corp", - "subscription_id": "sub-123", - "health": { - "code": "404", - "summary": "Missing DNS record", - "details": "Acquia could not verify the presence of the required TXT DNS record at _acquia-challenge.acme.corp. Ensure the record is published with the correct value and retry verification." - }, - "verification_record": { - "type": "TXT", - "host": "_acquia-challenge.acme.corp", - "value": "xyz789abc123", - "health": { - "code": "404", - "summary": "Missing DNS record", - "details": "The TXT record at _acquia-challenge.acme.corp was not found or does not match the expected value xyz789abc123." - } - }, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sso-domains/dom-789" - }, - "verify": { - "href": "https://cloud.acquia.com/api/sso-domains/dom-789/actions/verify" - } - } - } - }, - "verified_in_use": { - "summary": "Verified domain referenced by an Identity Provider policy", - "description": "A verified domain enforced by at least one Identity Provider policy. `health.code` is `200`; `verify` is absent; `identity_providers` is present. A DELETE on this domain will return 409 until the domain is removed from all policies.", - "value": { - "domain_id": "dom-456", - "domain": "acme.com", - "subscription_id": "sub-123", - "health": { - "code": "200", - "summary": "Verified", - "details": "The DNS TXT record has been confirmed and the domain is verified." - }, - "verification_record": { - "type": "TXT", - "host": "_acquia-challenge.acme.com", - "value": "abc123def456", - "health": { - "code": "200", - "summary": "Verified", - "details": "The TXT record at _acquia-challenge.acme.com matches the expected value." - } - }, - "verified_at": "2026-04-15T10:30:00Z", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sso-domains/dom-456" - }, - "identity_providers": { - "href": "https://cloud.acquia.com/api/identity-providers?filter=domain_id%3Ddom-456" - } - } - } - } - } - } - }, - "links": { - "self": { - "operationId": "findSsoDomainBySsoDomainId", - "parameters": { - "domainId": "$response.body#/domain_id" - } - }, - "delete": { - "operationId": "deleteSsoDomainBySsoDomainId", - "parameters": { - "domainId": "$response.body#/domain_id" - } - }, - "verify": { - "operationId": "verifySsoDomainBySsoDomainId", - "parameters": { - "domainId": "$response.body#/domain_id" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Federated_Authentication_API_BearerAuth": [] - } - ] - }, - "delete": { - "summary": "Delete a domain.", - "operationId": "deleteSsoDomainBySsoDomainId", - "tags": [ - "Federated_Authentication_API_Domains" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "sso-domains:delete" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "identity-service" - } - }, - "parameters": [ - { - "name": "domainId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the domain." - } - ], - "responses": { - "202": { - "description": "Domain deletion accepted. The domain is being deleted.", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "const": "Domain deletion has been accepted." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sso-domains/dom-456" - } - }, - "message": "Domain deletion has been accepted." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Federated_Authentication_API_BearerAuth": [] - } - ] - } - }, - "/sso-domains/{domainId}/actions/verify": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "post": { - "summary": "Verify domain ownership via DNS TXT record.", - "operationId": "verifySsoDomainBySsoDomainId", - "tags": [ - "Federated_Authentication_API_Domains" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "sso-domains:verify" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "identity-service" - } - }, - "parameters": [ - { - "name": "domainId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the domain." - } - ], - "responses": { - "202": { - "description": "Domain verification process initiated. The system will validate the DNS TXT record to confirm domain ownership. Poll the domain resource and check `health.code` to track progress: `202` in progress, `200` verified, `404` record not found.", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Domain verification has been accepted.", - "description": "Confirmation message" - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sso-domains/dom-456" - } - }, - "message": "Domain verification has been accepted." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Federated_Authentication_API_BearerAuth": [] - } - ] - } - }, - "/identity-providers": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Return a list of all accessible Identity Providers.", - "operationId": "getIdentityProviders", - "tags": [ - "Federated_Authentication_API_Identity Providers" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "identity-providers:list" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "identity-service" - } - }, - "parameters": [ - { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - }, - { - "name": "sort", - "in": "query", - "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" - }, - "example": "name,-created_at" - }, - { - "name": "filter", - "in": "query", - "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" - }, - "example": "status=active;type=standard" - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "properties": { - "identity_provider_id": { - "type": "string", - "description": "Unique identifier for the identity provider." - }, - "label": { - "type": "string", - "description": "The name of the Identity Provider." - }, - "subscription_id": { - "type": "string", - "description": "Unique identifier for the subscription that the Identity Provider belongs to." - }, - "idp_entity_id": { - "type": "string", - "format": "uri", - "description": "The Identity Provider Entity ID." - }, - "sp_entity_id": { - "type": "string", - "format": "uri", - "description": "The Service Provider Entity ID." - }, - "sso_url": { - "type": "string", - "format": "uri", - "description": "The Single Sign-On URL for the Identity Provider." - }, - "certificate": { - "type": "string", - "description": "The X.509 certificate used for SAML authentication." - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "Timestamp when the Identity Provider was created." - } - }, - "required": [ - "identity_provider_id", - "label", - "subscription_id", - "idp_entity_id", - "sp_entity_id", - "sso_url", - "certificate", - "created_at" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "examples": { - "identity_provider_response": { - "summary": "Identity provider collection with pagination", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2&offset=2" - }, - "limit": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?offset=2{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2&offset=2{&filter}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2&offset=2{&sort}", - "templated": true - }, - "prev": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2&offset=0" - }, - "next": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?offset=4&limit=2" - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "identity_provider_id": "908914ec-2354-4fb1-9298-637247eccc3a", - "label": "Acme Corporation Azure AD", - "subscription_id": "sub-123", - "idp_entity_id": "https://idp.acme.com/saml", - "sp_entity_id": "https://sp.acme.com/saml", - "sso_url": "https://acme.com/sso", - "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", - "created_at": "2026-04-15T11:00:00Z", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a" - }, - "sso_policy": { - "href": "https://cloud.acquia.com/api/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a/policies/sso" - } - } - }, - { - "identity_provider_id": "123456ec-2354-4fb1-9298-637247eccc3b", - "label": "Acme Research Ping Identity", - "subscription_id": "sub-123", - "idp_entity_id": "https://idp-research.acme.com/saml", - "sp_entity_id": "https://sp-research.acme.com/saml", - "sso_url": "https://research.acme.com/sso", - "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", - "created_at": "2026-04-20T14:20:00Z", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/identity-providers/123456ec-2354-4fb1-9298-637247eccc3b" - }, - "sso_policy": { - "href": "https://cloud.acquia.com/api/identity-providers/123456ec-2354-4fb1-9298-637247eccc3b/policies/sso" - } - } - } - ] - } - } - } - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Federated_Authentication_API_BearerAuth": [] - } - ] - } - }, - "/identity-providers/{identityProviderId}": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Return details about a specific Identity Provider.", - "operationId": "findIdentityProviderByIdentityProviderId", - "tags": [ - "Federated_Authentication_API_Identity Providers" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "identity-providers:find" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "identity-service" - } - }, - "parameters": [ - { - "name": "identityProviderId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the identity provider." - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "identity_provider_id": { - "type": "string", - "description": "Unique identifier for the identity provider." - }, - "label": { - "type": "string", - "description": "The name of the Identity Provider." - }, - "subscription_id": { - "type": "string", - "description": "Unique identifier for the subscription that the Identity Provider belongs to." - }, - "idp_entity_id": { - "type": "string", - "format": "uri", - "description": "The Identity Provider Entity ID." - }, - "sp_entity_id": { - "type": "string", - "format": "uri", - "description": "The Service Provider Entity ID." - }, - "sso_url": { - "type": "string", - "format": "uri", - "description": "The Single Sign-On URL for the Identity Provider." - }, - "certificate": { - "type": "string", - "description": "The X.509 certificate used for SAML authentication." - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "Timestamp when the Identity Provider was created." - } - }, - "required": [ - "identity_provider_id", - "label", - "subscription_id", - "idp_entity_id", - "sp_entity_id", - "sso_url", - "certificate", - "created_at" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "identity_provider_id": "908914ec-2354-4fb1-9298-637247eccc3a", - "label": "Acme Corporation Azure AD", - "subscription_id": "sub-123", - "idp_entity_id": "https://idp.acme.com/saml", - "sp_entity_id": "https://sp.acme.com/saml", - "sso_url": "https://acme.com/sso", - "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", - "created_at": "2026-04-15T11:00:00Z", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a" - }, - "sso_policy": { - "href": "https://cloud.acquia.com/api/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a/policies/sso" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findIdentityProviderByIdentityProviderId", - "parameters": { - "identityProviderId": "$response.body#/identity_provider_id" - } - }, - "update": { - "operationId": "updateIdentityProviderByIdentityProviderId", - "parameters": { - "identityProviderId": "$response.body#/identity_provider_id" - } - }, - "delete": { - "operationId": "deleteIdentityProviderByIdentityProviderId", - "parameters": { - "identityProviderId": "$response.body#/identity_provider_id" - } - }, - "enable_sso_policy": { - "operationId": "enableIdentityProviderSSOPolicyByIdentityProviderId", - "parameters": { - "identityProviderId": "$response.body#/identity_provider_id" - } - }, - "disable_sso_policy": { - "operationId": "disableIdentityProviderSSOPolicyByIdentityProviderId", - "parameters": { - "identityProviderId": "$response.body#/identity_provider_id" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Federated_Authentication_API_BearerAuth": [] - } - ] - }, - "put": { - "summary": "Updates an Identity Provider.", - "operationId": "updateIdentityProviderByIdentityProviderId", - "tags": [ - "Federated_Authentication_API_Identity Providers" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "identity-providers:update" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "identity-service" - } - }, - "parameters": [ - { - "name": "identityProviderId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the identity provider." - } - ], - "requestBody": { - "description": "Request body for updating an existing Identity Provider.", - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "label": { - "type": "string", - "description": "The name of the Identity Provider." - }, - "certificate": { - "type": "string", - "description": "The X.509 certificate used for SAML authentication." - }, - "sso_url": { - "type": "string", - "format": "uri", - "description": "The Single Sign-On URL for the Identity Provider." - }, - "idp_entity_id": { - "type": "string", - "format": "uri", - "description": "The Identity Provider Entity ID." - } - }, - "additionalProperties": false, - "minProperties": 1 - }, - "example": { - "label": "Updated Acme Corporation Azure AD", - "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", - "sso_url": "https://updatedacme.com/sso", - "idp_entity_id": "https://idp2.acme.com/saml" - } - } - } - }, - "responses": { - "202": { - "description": "Identity Provider update initiated. The Identity Provider configuration changes are being applied. Poll the Identity Provider resource to verify the changes.", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "const": "Identity Provider update has been accepted." - } - } - } - ] - }, - "example": { - "message": "Identity Provider update has been accepted.", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f" - } - } - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Federated_Authentication_API_BearerAuth": [] - } - ] - }, - "delete": { - "summary": "Deletes an Identity Provider.", - "operationId": "deleteIdentityProviderByIdentityProviderId", - "tags": [ - "Federated_Authentication_API_Identity Providers" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "identity-providers:delete" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "identity-service" - } - }, - "parameters": [ - { - "name": "identityProviderId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the identity provider." - } - ], - "responses": { - "202": { - "description": "Identity Provider deletion accepted. The Identity Provider is being deleted.", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "const": "Identity Provider deletion has been accepted." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f" - } - }, - "message": "Identity Provider deletion has been accepted." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Federated_Authentication_API_BearerAuth": [] - } - ] - } - }, - "/identity-providers/{identityProviderId}/policies/sso": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Get the SSO policy for an Identity Provider.", - "operationId": "findIdentityProviderSSOPolicyByIdentityProviderId", - "tags": [ - "Federated_Authentication_API_Identity Providers" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "identity-providers:find-sso-policy" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "identity-service" - } - }, - "parameters": [ - { - "name": "identityProviderId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the identity provider." - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "description": "SSO policy that enforces an Identity Provider for specific domains.", - "properties": { - "status": { - "type": "string", - "enum": [ - "enabled", - "disabled" - ], - "default": "disabled", - "description": "The status of the SSO policy. When enabled, the policy enforces SSO for the specified domains. Defaults to disabled on creation." - }, - "_embedded": { - "type": "object", - "description": "Embedded resources for the SSO policy.", - "properties": { - "domains": { - "type": "array", - "description": "The SSO domains enforced by this policy, each with a self link back to the authoritative SsoDomain resource.", - "items": { - "allOf": [ - { - "type": "object", - "properties": { - "domain_id": { - "type": "string", - "description": "Unique identifier for the domain." - }, - "domain": { - "type": "string", - "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", - "description": "The domain name (e.g., \"acme.com\")." - }, - "subscription_id": { - "type": "string", - "description": "Unique identifier for the subscription that the domain belongs to." - }, - "health": { - "type": "object", - "description": "The overall verification health of the domain. Uses the same code semantics as the platform email domain-verification system: `200` verified, `202` verification pending or in progress, `404` DNS record not found or could not be validated.", - "properties": { - "code": { - "type": "string", - "enum": [ - "200", - "202", - "404" - ], - "description": "Machine-readable verification status code. `200` — verified. `202` — verification pending or in progress; retry after propagation. `404` — DNS TXT record not found or does not match expected value." - }, - "summary": { - "type": "string", - "description": "Short human-readable label for the verification state (e.g., \"Verified\", \"Verification pending\", \"Missing DNS record\")." - }, - "details": { - "type": "string", - "description": "Actionable explanation of the current state. For `404`, describes what was checked and what the customer should do next." - } - }, - "required": [ - "code", - "summary", - "details" - ] - }, - "verification_record": { - "type": "object", - "description": "DNS TXT record the customer must publish to verify domain ownership.", - "properties": { - "type": { - "type": "string", - "const": "TXT", - "description": "DNS record type." - }, - "host": { - "type": "string", - "description": "DNS record host name." - }, - "value": { - "type": "string", - "description": "Expected DNS record value." - }, - "health": { - "type": "object", - "description": "Verification health specific to this DNS record. Anchors the failure reason to the exact record the customer needs to fix, matching the per-record health pattern used in platform email domain verification.", - "properties": { - "code": { - "type": "string", - "enum": [ - "200", - "202", - "404" - ], - "description": "`200` — record found and value matches. `202` — check in progress. `404` — record not found or value does not match." - }, - "summary": { - "type": "string", - "description": "Short human-readable label for this record's verification state." - }, - "details": { - "type": "string", - "description": "Actionable explanation; for `404`, states what was checked and what to fix." - } - }, - "required": [ - "code", - "summary", - "details" - ] - } - }, - "required": [ - "type", - "host", - "value", - "health" - ] - }, - "verified_at": { - "type": "string", - "format": "date-time", - "description": "Timestamp when the domain was successfully verified. Present only when `health.code` is `200`." - } - }, - "required": [ - "domain_id", - "domain", - "subscription_id", - "health", - "verification_record" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "domains" - ] - } - }, - "required": [ - "status", - "_embedded" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "status": "disabled", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso" - } - }, - "_embedded": { - "domains": [ - { - "domain_id": "dom-456", - "domain": "acme.com", - "subscription_id": "sub-123", - "health": { - "code": "200", - "summary": "Verified", - "details": "The DNS TXT record has been confirmed and the domain is verified." - }, - "verification_record": { - "type": "TXT", - "host": "_acquia-challenge.acme.com", - "value": "abc123def456", - "health": { - "code": "200", - "summary": "Verified", - "details": "The TXT record at _acquia-challenge.acme.com matches the expected value." - } - }, - "verified_at": "2026-04-15T10:30:00Z", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sso-domains/dom-456" - }, - "identity_providers": { - "href": "https://cloud.acquia.com/api/identity-providers?filter=domain_id%3Ddom-456" - } - } - }, - { - "domain_id": "dom-789", - "domain": "acme.corp", - "subscription_id": "sub-123", - "health": { - "code": "200", - "summary": "Verified", - "details": "The DNS TXT record has been confirmed and the domain is verified." - }, - "verification_record": { - "type": "TXT", - "host": "_acquia-challenge.acme.corp", - "value": "xyz789abc123", - "health": { - "code": "200", - "summary": "Verified", - "details": "The TXT record at _acquia-challenge.acme.corp matches the expected value." - } - }, - "verified_at": "2026-04-20T09:00:00Z", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sso-domains/dom-789" - }, - "identity_providers": { - "href": "https://cloud.acquia.com/api/identity-providers?filter=domain_id%3Ddom-789" - } - } - } - ] - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Federated_Authentication_API_BearerAuth": [] - } - ] - }, - "post": { - "summary": "Create the SSO policy for an Identity Provider.", - "operationId": "createIdentityProviderSSOPolicyByIdentityProviderId", - "tags": [ - "Federated_Authentication_API_Identity Providers" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "identity-providers:create-sso-policy" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "identity-service" - } - }, - "parameters": [ - { - "name": "identityProviderId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the identity provider." - } - ], - "requestBody": { - "description": "Request body for creating an SSO policy for an Identity Provider.", - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "domain_ids": { - "type": "array", - "description": "List of verified domain IDs to enforce this Identity Provider for.", - "items": { - "type": "string", - "description": "Reference to a verified SSO domain." - } - } - }, - "required": [ - "domain_ids" - ], - "additionalProperties": false - }, - "example": { - "domain_ids": [ - "dom-456", - "dom-789" - ] - } - } - } - }, - "responses": { - "202": { - "description": "SSO policy creation initiated. The policy is being activated. Poll the SSO policy resource to verify activation.", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "const": "SSO policy creation has been accepted." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso" - } - }, - "message": "SSO policy creation has been accepted." - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Federated_Authentication_API_BearerAuth": [] - } - ] - }, - "put": { - "summary": "Update the SSO policy for an Identity Provider.", - "operationId": "updateIdentityProviderSSOPolicyByIdentityProviderId", - "tags": [ - "Federated_Authentication_API_Identity Providers" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "identity-providers:update-sso-policy" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "identity-service" - } - }, - "parameters": [ - { - "name": "identityProviderId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the identity provider." - } - ], - "requestBody": { - "description": "Request body for updating an SSO policy for an Identity Provider.", - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "domain_ids": { - "type": "array", - "description": "List of verified domain IDs to enforce this Identity Provider for.", - "items": { - "type": "string", - "description": "Reference to a verified SSO domain." - } - } - }, - "required": [ - "domain_ids" - ], - "additionalProperties": false, - "minProperties": 1 - }, - "example": { - "domain_ids": [ - "dom-456" - ] - } - } - } - }, - "responses": { - "202": { - "description": "SSO policy update initiated. The policy changes are being applied. Poll the SSO policy resource to verify the changes.", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "const": "SSO policy update has been accepted." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso" - } - }, - "message": "SSO policy update has been accepted." - } - } - } - }, - "400": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Federated_Authentication_API_BearerAuth": [] - } - ] - }, - "delete": { - "summary": "Delete the SSO policy for an Identity Provider.", - "operationId": "deleteIdentityProviderSSOPolicyByIdentityProviderId", - "tags": [ - "Federated_Authentication_API_Identity Providers" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "identity-providers:delete-sso-policy" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "identity-service" - } - }, - "parameters": [ - { - "name": "identityProviderId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the identity provider." - } - ], - "responses": { - "202": { - "description": "SSO policy deletion initiated. The policy is being deactivated. Poll the Identity Provider resource to verify the policy has been removed.", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "const": "SSO policy deletion has been accepted." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso" - } - }, - "message": "SSO policy deletion has been accepted." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Federated_Authentication_API_BearerAuth": [] - } - ] - } - }, - "/identity-providers/{identityProviderId}/policies/sso/actions/enable": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "post": { - "summary": "Enable the SSO policy for an Identity Provider.", - "operationId": "enableIdentityProviderSSOPolicyByIdentityProviderId", - "tags": [ - "Federated_Authentication_API_Identity Providers" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "identity-providers:enable-sso-policy" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "identity-service" - } - }, - "parameters": [ - { - "name": "identityProviderId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the identity provider." - } - ], - "responses": { - "202": { - "description": "SSO policy enablement initiated. The policy is being enabled and will enforce domains. Poll the SSO policy resource to verify the status change.", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "const": "SSO policy enablement has been accepted." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso" - } - }, - "message": "SSO policy enablement has been accepted." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Federated_Authentication_API_BearerAuth": [] - } - ] - } - }, - "/identity-providers/{identityProviderId}/policies/sso/actions/disable": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "post": { - "summary": "Disable the SSO policy for an Identity Provider.", - "operationId": "disableIdentityProviderSSOPolicyByIdentityProviderId", - "tags": [ - "Federated_Authentication_API_Identity Providers" - ], - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "identity-providers:disable-sso-policy" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "identity-service" - } - }, - "parameters": [ - { - "name": "identityProviderId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the identity provider." - } - ], - "responses": { - "202": { - "description": "SSO policy disablement initiated. The policy is being disabled and will no longer enforce domains. Poll the SSO policy resource to verify the status change.", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "const": "SSO policy disablement has been accepted." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso" - } - }, - "message": "SSO policy disablement has been accepted." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "Federated_Authentication_API_BearerAuth": [] - } - ] - } - }, - "/ssh-keys": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Gets a list of SSH keys.", - "description": "Gets a list of all SSH keys accessible to the requester. Each key includes\na `user_id` field identifying the owner.\n\nTo look up the owner of an SSH key by fingerprint or public key, apply a\nmandatory filter: `GET /ssh-keys?filter=fingerprint%3D` or\n`GET /ssh-keys?filter=public_key%3D`. The matching key(s) will\ninclude the `user_id` of the owner.\n\nFilterable fields:\n* `label`\n* `fingerprint`\n* `public_key`\n* `user_id`\n\nSortable fields:\n* `label`\n", - "operationId": "getSshKeys", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "ssh-keys:list" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "ssh-key-service" - } - }, - "tags": [ - "SSH_Key_Service_API_SSH Keys" - ], - "parameters": [ - { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - }, - { - "name": "filter", - "in": "query", - "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals (default if no operator specified)\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `label=primary` - Filter by label equals primary\n- `fingerprint=@SHA256` - Filter by fingerprint containing \"SHA256\"\n- `label=primary;fingerprint=@SHA256` - label is primary AND fingerprint contains SHA256\n- `label=primary,label=backup` - label is primary OR backup\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" - }, - "example": "label=primary;fingerprint=@SHA256" - }, - { - "name": "sort", - "in": "query", - "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" - }, - "example": "name,-created_at" - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - }, - { - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - }, - { - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - }, - { - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering." - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - } - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - }, - { - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting." - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - } - } - } - ] - }, - { - "type": "object", - "description": "A collection of SSH keys.", - "properties": { - "_embedded": { - "type": "object", - "description": "A collection of SSH keys matching the request parameters.", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "required": [ - "id", - "label", - "public_key", - "fingerprint", - "created_at", - "user_id" - ], - "description": "Details an SSH key.", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the SSH key.", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "label": { - "type": "string", - "description": "The human-readable key label." - }, - "public_key": { - "type": "string", - "description": "The public key.", - "minLength": 64 - }, - "fingerprint": { - "type": "string", - "description": "The public key fingerprint.", - "pattern": "^[A-Za-z0-9:+/=.-]+$" - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "The key creation date." - }, - "user_id": { - "type": "string", - "description": "The unique identifier of the user who owns this SSH key.", - "pattern": "^[a-zA-Z0-9-]+$" - } - } - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "examples": { - "ssh_keys": { - "summary": "SSH key collection", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/ssh-keys?limit=2&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/ssh-keys?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/ssh-keys?limit=2{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/ssh-keys?limit=2&offset=0{&filter}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api/ssh-keys?limit=2&offset=0{&sort}", - "templated": true - }, - "next": { - "href": "https://cloud.acquia.com/api/ssh-keys?limit=2&offset=2" - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "1acbb1a5-e864-4b8e-a3f9-b1ed462afd25", - "label": "primary", - "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQChwPHzTTDKDpSbpa2+d22LcbQmsw92eLsUK3Fmei1fiGDkd34NsYCN8m7lsi3NbvdMS83CtPQPWiCveYPzFs1/hHc4PYj8opD2CNnr5iWVVbyaulCYHCgVv4aB/ojcexg8q483A4xJeF15TiCr/gu34rK6ucTvC/tn/rCwJBudczvEwt0klqYwv8Cl/ytaQboSuem5KgSjO3lMrb6CWtfSNhE43ZOw+UBFBqxIninN868vGMkIv9VY34Pwj54rPn/ItQd6Ef4B0KHHaGmzK0vfP+AK7FxNMoHnj3iYT33KZNqtDozdn5tYyH/bThPebEtgqUn+/w5l6wZIC/8zzvls/127ngHk+jNa0PlNyS2TxhPUK4NaPHIEnnrlp07JEYC4ImcBjaYCWAdcTcUkcJjwZQkN4bGmyO9cjICH98SdLD/HxqzTHeaYDbAX/Hu9HfaBb5dXLWsjw3Xc6hoVnUUZbMQyfgb0KgxDLh92eNGxJkpZiL0VDNOWCxDWsNpzwhLNkLqCvI6lyxiLaUzvJAk6dPaRhExmCbU1lDO2eR0FdSwC1TEhJOT9eDIK1r2hztZKs2oa5FNFfB/IFHVWasVFC9N2h/r/egB5zsRxC9MqBLRBq95NBxaRSFng6ML5WZSw41Qi4C/JWVm89rdj2WqScDHYyAdwyyppWU4T5c9Fmw== example@example.com", - "fingerprint": "SHA256:7a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8g9h0i1j2k3l4m5n6o7p8q9r0s1", - "created_at": "2024-10-01T12:30:00Z", - "user_id": "a47ac10b-58cc-4372-a567-0e02b2c3d479", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/ssh-keys/1acbb1a5-e864-4b8e-a3f9-b1ed462afd25" - } - } - }, - { - "id": "2bcbb1a5-e864-4b8e-a3f9-b1ed462afd26", - "label": "backup", - "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFf2T1I1d8T1B9Q1b8pS6m2xvY3i5q8sNnU5oQwY5vS9 example@example.com", - "fingerprint": "SHA256:9b8c7d6e5f4a3b2c1d0e9f8a7b6c5d4e3f2a1b0c9d8e7f6a5b4c3d2e1f0a9b8", - "created_at": "2024-10-02T09:15:00Z", - "user_id": "b58bd21c-69dd-5483-b678-1f13c3d4e580", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/ssh-keys/2bcbb1a5-e864-4b8e-a3f9-b1ed462afd26" - } - } - } - ] - } - } - } - } - } - } - }, - "400": { - "description": "Bad Request - Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "required": [ - "error", - "message" - ], - "description": "A validation error.", - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "object", - "description": "The validation error message keyed by its field or group name.", - "additionalProperties": { - "type": "string" - } - } - } - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "required": [ - "error", - "message" - ], - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "string", - "description": "The long description for the returned error." - } - } - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "required": [ - "error", - "message" - ], - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "string", - "description": "The long description for the returned error." - } - } - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "required": [ - "error", - "message" - ], - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "string", - "description": "The long description for the returned error." - } - } - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "SSH_Key_Service_API_BearerAuth": [] - } - ] - }, - "post": { - "summary": "Installs a new SSH key for the current user.", - "description": "Installs a new SSH key for the current user.", - "operationId": "createSshKey", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "ssh-keys:create" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "ssh-key-service" - } - }, - "tags": [ - "SSH_Key_Service_API_SSH Keys" - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "required": [ - "label", - "public_key" - ], - "description": "Describes the request body for an SSH key.", - "properties": { - "label": { - "type": "string", - "description": "The SSH key label." - }, - "public_key": { - "type": "string", - "description": "The public key." - } - }, - "additionalProperties": false, - "minProperties": 1 - }, - "example": { - "label": "mykey", - "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQChwPHzTTDKDpSbpa2+d22LcbQmsw92eLsUK3Fmei1fiGDkd34NsYCN8m7lsi3NbvdMS83CtPQPWiCveYPzFs1/hHc4PYj8opD2CNnr5iWVVbyaulCYHCgVv4aB/ojcexg8q483A4xJeF15TiCr/gu34rK6ucTvC/tn/rCwJBudczvEwt0klqYwv8Cl/ytaQboSuem5KgSjO3lMrb6CWtfSNhE43ZOw+UBFBqxIninN868vGMkIv9VY34Pwj54rPn/ItQd6Ef4B0KHHaGmzK0vfP+AK7FxNMoHnj3iYT33KZNqtDozdn5tYyH/bThPebEtgqUn+/w5l6wZIC/8zzvls/127ngHk+jNa0PlNyS2TxhPUK4NaPHIEnnrlp07JEYC4ImcBjaYCWAdcTcUkcJjwZQkN4bGmyO9cjICH98SdLD/HxqzTHeaYDbAX/Hu9HfaBb5dXLWsjw3Xc6hoVnUUZbMQyfgb0KgxDLh92eNGxJkpZiL0VDNOWCxDWsNpzwhLNkLqCvI6lyxiLaUzvJAk6dPaRhExmCbU1lDO2eR0FdSwC1TEhJOT9eDIK1r2hztZKs2oa5FNFfB/IFHVWasVFC9N2h/r/egB5zsRxC9MqBLRBq95NBxaRSFng6ML5WZSw41Qi4C/JWVm89rdj2WqScDHYyAdwyyppWU4T5c9Fmw== example@example.com" - } - } - } - }, - "responses": { - "202": { - "description": "Accepted", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "required": [ - "message" - ], - "properties": { - "message": { - "type": "string", - "description": "The human-friendly confirmation of the operation." - } - } - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Added SSH key.", - "description": "Confirmation message." - } - } - } - ] - }, - "example": { - "message": "Added SSH key.", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/ssh-keys/981b7910-2fe9-11e9-b210-d663bd873d93" - } - } - } - } - } - }, - "400": { - "description": "Bad Request - Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "required": [ - "error", - "message" - ], - "description": "A validation error.", - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "object", - "description": "The validation error message keyed by its field or group name.", - "additionalProperties": { - "type": "string" - } - } - } - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required." - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "required": [ - "error", - "message" - ], - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "string", - "description": "The long description for the returned error." - } - } - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "required": [ - "error", - "message" - ], - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "string", - "description": "The long description for the returned error." - } - } - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "required": [ - "error", - "message" - ], - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "string", - "description": "The long description for the returned error." - } - } - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "required": [ - "error", - "message" - ], - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "string", - "description": "The long description for the returned error." - } - } - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "SSH_Key_Service_API_BearerAuth": [] - } - ] - } - }, - "/ssh-keys/{sshKeyId}": { - "servers": [ - { - "url": "https://cloud.acquia.com/api" - } - ], - "get": { - "summary": "Gets an SSH key.", - "description": "Gets an SSH key by SSH Key ID.", - "operationId": "findSshKeyBySshKeyId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "ssh-keys:find" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "ssh-key-service" - } - }, - "tags": [ - "SSH_Key_Service_API_SSH Keys" - ], - "parameters": [ - { - "name": "sshKeyId", - "in": "path", - "description": "The SSH key's unique identifier.", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "example": "981b7910-2fe9-11e9-b210-d663bd873d93" - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "required": [ - "id", - "label", - "public_key", - "fingerprint", - "created_at", - "user_id" - ], - "description": "Details an SSH key.", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the SSH key.", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "label": { - "type": "string", - "description": "The human-readable key label." - }, - "public_key": { - "type": "string", - "description": "The public key.", - "minLength": 64 - }, - "fingerprint": { - "type": "string", - "description": "The public key fingerprint.", - "pattern": "^[A-Za-z0-9:+/=.-]+$" - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "The key creation date." - }, - "user_id": { - "type": "string", - "description": "The unique identifier of the user who owns this SSH key.", - "pattern": "^[a-zA-Z0-9-]+$" - } - } - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "id": "1acbb1a5-e864-4b8e-a3f9-b1ed462afd25", - "label": "primary", - "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQChwPHzTTDKDpSbpa2+d22LcbQmsw92eLsUK3Fmei1fiGDkd34NsYCN8m7lsi3NbvdMS83CtPQPWiCveYPzFs1/hHc4PYj8opD2CNnr5iWVVbyaulCYHCgVv4aB/ojcexg8q483A4xJeF15TiCr/gu34rK6ucTvC/tn/rCwJBudczvEwt0klqYwv8Cl/ytaQboSuem5KgSjO3lMrb6CWtfSNhE43ZOw+UBFBqxIninN868vGMkIv9VY34Pwj54rPn/ItQd6Ef4B0KHHaGmzK0vfP+AK7FxNMoHnj3iYT33KZNqtDozdn5tYyH/bThPebEtgqUn+/w5l6wZIC/8zzvls/127ngHk+jNa0PlNyS2TxhPUK4NaPHIEnnrlp07JEYC4ImcBjaYCWAdcTcUkcJjwZQkN4bGmyO9cjICH98SdLD/HxqzTHeaYDbAX/Hu9HfaBb5dXLWsjw3Xc6hoVnUUZbMQyfgb0KgxDLh92eNGxJkpZiL0VDNOWCxDWsNpzwhLNkLqCvI6lyxiLaUzvJAk6dPaRhExmCbU1lDO2eR0FdSwC1TEhJOT9eDIK1r2hztZKs2oa5FNFfB/IFHVWasVFC9N2h/r/egB5zsRxC9MqBLRBq95NBxaRSFng6ML5WZSw41Qi4C/JWVm89rdj2WqScDHYyAdwyyppWU4T5c9Fmw== example@example.com", - "fingerprint": "SHA256:7a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8g9h0i1j2k3l4m5n6o7p8q9r0s1", - "created_at": "2024-10-01T12:30:00Z", - "user_id": "a47ac10b-58cc-4372-a567-0e02b2c3d479", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/ssh-keys/1acbb1a5-e864-4b8e-a3f9-b1ed462afd25" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findSshKeyBySshKeyId", - "parameters": { - "sshKeyId": "$request.path.sshKeyId" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "required": [ - "error", - "message" - ], - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "string", - "description": "The long description for the returned error." - } - } - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "required": [ - "error", - "message" - ], - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "string", - "description": "The long description for the returned error." - } - } - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "required": [ - "error", - "message" - ], - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "string", - "description": "The long description for the returned error." - } - } - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "required": [ - "error", - "message" - ], - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "string", - "description": "The long description for the returned error." - } - } - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "SSH_Key_Service_API_BearerAuth": [] - } - ] - }, - "delete": { - "summary": "Deletes an SSH key.", - "description": "Deletes an SSH key by SSH Key ID.", - "operationId": "deleteSshKeyBySshKeyId", - "x-acquia-exposure": { - "channels": { - "rest": { - "enabled": true - }, - "cli": { - "enabled": true, - "command": "ssh-keys:delete" - } - }, - "stability": "development", - "audience": [ - "public" - ] - }, - "x-acquia-operation": { - "provider": { - "service": "ssh-key-service" - } - }, - "tags": [ - "SSH_Key_Service_API_SSH Keys" - ], - "parameters": [ - { - "name": "sshKeyId", - "in": "path", - "description": "The SSH key's unique identifier.", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "example": "981b7910-2fe9-11e9-b210-d663bd873d93" - } - ], - "responses": { - "202": { - "description": "Accepted", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "required": [ - "message" - ], - "properties": { - "message": { - "type": "string", - "description": "The human-friendly confirmation of the operation." - } - } - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Removed SSH key.", - "description": "Confirmation message." - } - } - } - ] - }, - "example": { - "message": "Removed SSH key.", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/ssh-keys/1acbb1a5-e864-4b8e-a3f9-b1ed462afd25" - } - } - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "required": [ - "error", - "message" - ], - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "string", - "description": "The long description for the returned error." - } - } - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "required": [ - "error", - "message" - ], - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "string", - "description": "The long description for the returned error." - } - } - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "required": [ - "error", - "message" - ], - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "string", - "description": "The long description for the returned error." - } - } - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "required": [ - "error", - "message" - ], - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "string", - "description": "The long description for the returned error." - } - } - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "required": [ - "error", - "message" - ], - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "string", - "description": "The long description for the returned error." - } - } - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "security": [ - { - "SSH_Key_Service_API_BearerAuth": [] - } - ] - } - } - }, - "components": { - "parameters": { - "Failover_Service_API_environmentId": { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - }, - "Failover_Service_API_failoverGroupId": { - "name": "failoverGroupId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the failover group." - }, - "Failover_Service_API_Offset": { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - "Failover_Service_API_Limit": { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - }, - "Failover_Service_API_Filter": { - "name": "filter", - "in": "query", - "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" - }, - "example": "status=active;type=standard" - }, - "Failover_Service_API_FailoverGroupId": { - "name": "failoverGroupId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the failover group." - }, - "Failover_Service_API_EnvironmentId": { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - }, - "Codebase_Service_API_codebaseId": { - "name": "codebaseId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the codebase." - }, - "Codebase_Service_API_patternId": { - "name": "patternId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the domain pattern." - }, - "Codebase_Service_API_referenceName": { - "name": "referenceName", - "in": "path", - "required": true, - "description": "Name of the git reference (branch or tag). Slashes must be URL-encoded as `%2F` in the path (e.g., `feature%2Fbranch-name`).", - "schema": { - "type": "string", - "pattern": "^[^/]+$" - } - }, - "Codebase_Service_API_subscriptionId": { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the subscription" - }, - "Codebase_Service_API_Offset": { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - "Codebase_Service_API_Limit": { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - }, - "Codebase_Service_API_Filter": { - "name": "filter", - "in": "query", - "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" - }, - "example": "status=active;type=standard" - }, - "Codebase_Service_API_CodebaseId": { - "name": "codebaseId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the codebase." - }, - "Codebase_Service_API_ReferenceName": { - "name": "referenceName", - "in": "path", - "required": true, - "description": "Name of the git reference (branch or tag). Slashes must be URL-encoded as `%2F` in the path (e.g., `feature%2Fbranch-name`).", - "schema": { - "type": "string", - "pattern": "^[^/]+$" - } - }, - "Codebase_Service_API_Sort": { - "name": "sort", - "in": "query", - "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" - }, - "example": "name,-created_at" - }, - "Codebase_Service_API_PatternId": { - "name": "patternId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the domain pattern." - }, - "Codebase_Service_API_SubscriptionId": { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the subscription" - }, - "Tag_API_tagName": { - "name": "tagName", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the tag." - }, - "Tag_API_Offset": { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - "Tag_API_Limit": { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - }, - "Tag_API_Filter": { - "name": "filter", - "in": "query", - "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" - }, - "example": "status=active;type=standard" - }, - "Tag_API_Sort": { - "name": "sort", - "in": "query", - "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" - }, - "example": "name,-created_at" - }, - "Tag_API_TagName": { - "name": "tagName", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the tag." - }, - "Site_Service_API_siteId": { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "12345678-1234-1234-1234-123456789012" - }, - "description": "Unique identifier for the site" - }, - "Site_Service_API_codebaseId": { - "name": "codebaseId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "550e8400-e29b-41d4-a716-446655441212" - }, - "description": "Unique identifier for the codebase" - }, - "Site_Service_API_subscriptionId": { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "550e8300-e29b-41d4-a716-446655441212" - }, - "description": "Unique identifier for the subscription" - }, - "Site_Service_API_environmentId": { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "0ebce493-9d09-479d-a9a8-138a206fa687" - }, - "description": "Unique identifier for the environment" - }, - "Site_Service_API_Offset": { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - "Site_Service_API_Limit": { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - }, - "Site_Service_API_Filter": { - "name": "filter", - "in": "query", - "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" - }, - "example": "status=active;type=standard" - }, - "Site_Service_API_Sort": { - "name": "sort", - "in": "query", - "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" - }, - "example": "name,-created_at" - }, - "Site_Service_API_SiteId": { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "12345678-1234-1234-1234-123456789012" - }, - "description": "Unique identifier for the site" - }, - "Site_Service_API_CodebaseId": { - "name": "codebaseId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "550e8400-e29b-41d4-a716-446655441212" - }, - "description": "Unique identifier for the codebase" - }, - "Site_Service_API_SubscriptionId": { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "550e8300-e29b-41d4-a716-446655441212" - }, - "description": "Unique identifier for the subscription" - }, - "Site_Service_API_EnvironmentId": { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "0ebce493-9d09-479d-a9a8-138a206fa687" - }, - "description": "Unique identifier for the environment" - }, - "CDN_API_SubscriptionUuid": { - "name": "subscriptionUuid", - "in": "path", - "required": true, - "description": "The unique identifier of the subscription.", - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - } - }, - "CDN_API_DomainName": { - "name": "domainName", - "in": "path", - "required": true, - "description": "The fully qualified domain name.", - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?(\\.[a-zA-Z]{2,})+$" - } - }, - "CDN_API_EnvironmentId": { - "name": "environmentId", - "in": "path", - "required": true, - "description": "The unique identifier of the environment.", - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - } - }, - "CDN_API_Offset": { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - "CDN_API_Limit": { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - }, - "CDN_API_Filter": { - "name": "filter", - "in": "query", - "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" - }, - "example": "status=active;type=standard" - }, - "CDN_API_Sort": { - "name": "sort", - "in": "query", - "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" - }, - "example": "name,-created_at" - }, - "Environment_Service_API_environmentId": { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - }, - "Environment_Service_API_siteId": { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the site." - }, - "Environment_Service_API_deploymentId": { - "name": "deploymentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the deployment." - }, - "Environment_Service_API_codebaseId": { - "name": "codebaseId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Codebase identifier" - }, - "Environment_Service_API_domainName": { - "name": "domainName", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*$" - }, - "description": "The fully-qualified domain name (e.g., www.example.com)." - }, - "Environment_Service_API_backupId": { - "name": "backupId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Database backup identifier" - }, - "Environment_Service_API_privateNetworkId": { - "name": "privateNetworkId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Private network identifier" - }, - "Environment_Service_API_patternId": { - "name": "patternId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the domain pattern." - }, - "Environment_Service_API_CodebaseId": { - "name": "codebaseId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Codebase identifier" - }, - "Environment_Service_API_Offset": { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - "Environment_Service_API_Limit": { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - }, - "Environment_Service_API_Filter": { - "name": "filter", - "in": "query", - "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" - }, - "example": "status=active;type=standard" - }, - "Environment_Service_API_EnvironmentId": { - "name": "environmentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the environment." - }, - "Environment_Service_API_SiteId": { - "name": "siteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the site." - }, - "Environment_Service_API_PrivateNetworkId": { - "name": "privateNetworkId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Private network identifier" - }, - "Environment_Service_API_Sort": { - "name": "sort", - "in": "query", - "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" - }, - "example": "name,-created_at" - }, - "Environment_Service_API_DomainName": { - "name": "domainName", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*$" - }, - "description": "The fully-qualified domain name (e.g., www.example.com)." - }, - "Environment_Service_API_BackupId": { - "name": "backupId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Database backup identifier" - }, - "Environment_Service_API_DeploymentId": { - "name": "deploymentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the deployment." - }, - "Environment_Service_API_PatternId": { - "name": "patternId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the domain pattern." - }, - "Federated_Authentication_API_SubscriptionId": { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the subscription." - }, - "Federated_Authentication_API_SsoDomainId": { - "name": "domainId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the domain." - }, - "Federated_Authentication_API_IdentityProviderId": { - "name": "identityProviderId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "description": "Unique identifier for the identity provider." - }, - "Federated_Authentication_API_Offset": { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - "Federated_Authentication_API_Limit": { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - }, - "Federated_Authentication_API_Sort": { - "name": "sort", - "in": "query", - "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" - }, - "example": "name,-created_at" - }, - "Federated_Authentication_API_Filter": { - "name": "filter", - "in": "query", - "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" - }, - "example": "status=active;type=standard" - }, - "SSH_Key_Service_API_SshKeyId": { - "name": "sshKeyId", - "in": "path", - "description": "The SSH key's unique identifier.", - "required": true, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "example": "981b7910-2fe9-11e9-b210-d663bd873d93" - }, - "SSH_Key_Service_API_Offset": { - "name": "offset", - "in": "query", - "description": "The number of items to skip before starting to collect the result set.", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "example": 20 - } - }, - "SSH_Key_Service_API_Limit": { - "name": "limit", - "in": "query", - "description": "The maximum number of items to return per page.", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "example": 10 - } - }, - "SSH_Key_Service_API_Filter": { - "name": "filter", - "in": "query", - "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals (default if no operator specified)\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `label=primary` - Filter by label equals primary\n- `fingerprint=@SHA256` - Filter by fingerprint containing \"SHA256\"\n- `label=primary;fingerprint=@SHA256` - label is primary AND fingerprint contains SHA256\n- `label=primary,label=backup` - label is primary OR backup\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$" - }, - "example": "label=primary;fingerprint=@SHA256" - }, - "SSH_Key_Service_API_Sort": { - "name": "sort", - "in": "query", - "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", - "required": false, - "schema": { - "type": "string", - "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$" - }, - "example": "name,-created_at" - } - }, - "responses": { - "Failover_Service_API_ForbiddenError": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "Failover_Service_API_InternalServerError": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - }, - "Failover_Service_API_NotFoundError": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "Failover_Service_API_UnauthorizedError": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "Failover_Service_API_InvalidOperationError": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "Failover_Service_API_FailoverGroupCollection": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for the failover group.", - "example": "b2c3d4e5-f6a7-8901-bcde-f12345678901" - }, - "name": { - "type": "string", - "description": "The name of the failover group.", - "example": "Primary Failover Group" - }, - "status": { - "type": "string", - "enum": [ - "creating", - "normal", - "failed-over", - "failing-over", - "error", - "deleting", - "deleted" - ], - "description": "The current status of the failover group.", - "example": "normal" - }, - "pairs": { - "type": "array", - "description": "The list of failover pairs belonging to this failover group.", - "items": { - "type": "object", - "properties": { - "service_name": { - "type": "string", - "description": "The name of the service for this failover pair.", - "example": "my-application-service" - }, - "primary_id": { - "type": "string", - "description": "The ID of the primary resource in the failover pair.", - "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" - }, - "failover_id": { - "type": "string", - "description": "The UUID of the failover resource in the failover pair.", - "example": "f1e2d3c4-b5a6-7890-fedc-ba9876543210" - } - }, - "required": [ - "service_name", - "primary_id", - "failover_id" - ] - } - } - }, - "required": [ - "id", - "name", - "status", - "pairs" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "examples": { - "failover_group_collection": { - "summary": "Failover group collection with pagination", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/failover-groups?limit=2&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/failover-groups?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/failover-groups?limit=2{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/failover-groups?limit=2&offset=0{&filter}", - "templated": true - } - }, - "count": 1, - "total": 1, - "pagination": { - "total": 1, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", - "name": "Primary Failover Group", - "status": "normal", - "pairs": [ - { - "service_name": "my-application-service", - "primary_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", - "failover_id": "f1e2d3c4-b5a6-7890-fedc-ba9876543210" - } - ], - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901" - } - } - } - ] - } - } - } - } - } - } - }, - "Failover_Service_API_FailoverGroup": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for the failover group.", - "example": "b2c3d4e5-f6a7-8901-bcde-f12345678901" - }, - "name": { - "type": "string", - "description": "The name of the failover group.", - "example": "Primary Failover Group" - }, - "status": { - "type": "string", - "enum": [ - "creating", - "normal", - "failed-over", - "failing-over", - "error", - "deleting", - "deleted" - ], - "description": "The current status of the failover group.", - "example": "normal" - }, - "pairs": { - "type": "array", - "description": "The list of failover pairs belonging to this failover group.", - "items": { - "type": "object", - "properties": { - "service_name": { - "type": "string", - "description": "The name of the service for this failover pair.", - "example": "my-application-service" - }, - "primary_id": { - "type": "string", - "description": "The ID of the primary resource in the failover pair.", - "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" - }, - "failover_id": { - "type": "string", - "description": "The UUID of the failover resource in the failover pair.", - "example": "f1e2d3c4-b5a6-7890-fedc-ba9876543210" - } - }, - "required": [ - "service_name", - "primary_id", - "failover_id" - ] - } - } - }, - "required": [ - "id", - "name", - "status", - "pairs" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", - "name": "Primary Failover Group", - "status": "normal", - "pairs": [ - { - "service_name": "my-application-service", - "primary_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", - "failover_id": "f1e2d3c4-b5a6-7890-fedc-ba9876543210" - } - ], - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findFailoverGroupByFailoverGroupId", - "parameters": { - "failoverGroupId": "$request.path.failoverGroupId" - } - } - } - }, - "Failover_Service_API_MultiRegionFailoverStatus": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "is_enabled": { - "type": "boolean", - "description": "Whether multi-region failover is enabled for the environment." - }, - "failover_group_id": { - "type": "string", - "description": "The identifier of the failover group associated with the environment." - }, - "is_traffic_failed_over": { - "type": "boolean", - "description": "Whether traffic has been failed over to the secondary region." - } - }, - "required": [ - "is_enabled" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "is_enabled": true, - "failover_group_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", - "is_traffic_failed_over": false, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/a1b2c3d4-e5f6-7890-abcd-ef1234567890/multi-region-failover" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findMultiRegionFailoverByEnvironmentId", - "parameters": { - "environmentId": "$request.path.environmentId" - } - } - } - }, - "Failover_Service_API_CreateFailoverGroupResponse": { - "description": "Failover group creation initiated", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Failover group creation has been initiated.", - "description": "Confirmation message that the failover group creation has been initiated." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901" - } - }, - "message": "Failover group creation has been initiated." - } - } - } - }, - "Failover_Service_API_DeleteFailoverGroupResponse": { - "description": "Failover group deletion initiated", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Failover group deletion has been initiated.", - "description": "Confirmation message that the failover group deletion has been initiated." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901" - } - }, - "message": "Failover group deletion has been initiated." - } - } - } - }, - "Failover_Service_API_FailoverGroupFailoverResponse": { - "description": "Failover group failover initiated", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Failover group failover initiated.", - "description": "Confirmation message that the failover group failover has been initiated." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901" - } - }, - "message": "Failover group failover initiated." - } - } - } - }, - "Failover_Service_API_FailoverGroupRevertFailoverResponse": { - "description": "Failover group revert failover initiated", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Failover group revert failover initiated.", - "description": "Confirmation message that the failover group revert failover has been initiated." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901" - } - }, - "message": "Failover group revert failover initiated." - } - } - } - }, - "Failover_Service_API_FailoverGroupSyncResponse": { - "description": "Failover group sync initiated", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Failover group sync initiated.", - "description": "Confirmation message that the failover group sync has been initiated." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901" - } - }, - "message": "Failover group sync initiated." - } - } - } - }, - "Failover_Service_API_SaveMultiRegionFailoverResponse": { - "description": "Multi-region failover enable initiated", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Multi-region failover enable has been initiated.", - "description": "Confirmation message that multi-region failover enable has been initiated." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/a1b2c3d4-e5f6-7890-abcd-ef1234567890/multi-region-failover" - } - }, - "message": "Multi-region failover enable has been initiated." - } - } - } - }, - "Failover_Service_API_DeleteMultiRegionFailoverResponse": { - "description": "Multi-region failover disable initiated", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "Multi-region failover disable has been initiated.", - "description": "Confirmation message that multi-region failover disable has been initiated." - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/a1b2c3d4-e5f6-7890-abcd-ef1234567890/multi-region-failover" - } - }, - "message": "Multi-region failover disable has been initiated." - } - } - } - }, - "Failover_Service_API_ValidationError": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "Codebase_Service_API_Codebase": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for the codebase" - }, - "label": { - "type": "string", - "description": "Human-readable label for the codebase" - }, - "region": { - "type": "string", - "description": "AWS region of the codebase" - }, - "vcs_url": { - "type": "string", - "format": "uri", - "description": "VCS repository URL" - }, - "repository_id": { - "type": "string", - "description": "VCS repository identifier" - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "Creation timestamp" - }, - "updated_at": { - "type": "string", - "format": "date-time", - "description": "Last update timestamp" - }, - "description": { - "type": "string", - "description": "Description of the codebase" - }, - "flags": { - "type": "object", - "properties": { - "is_active": { - "type": "boolean", - "description": "Whether the codebase is active" - }, - "is_meo": { - "type": "boolean", - "description": "Whether the codebase is MEO" - } - }, - "required": [ - "is_active", - "is_meo" - ], - "description": "Feature flags for the codebase" - }, - "hash": { - "type": "string", - "description": "Codebase hash" - }, - "applications_total": { - "type": "integer", - "description": "Total number of applications linked to this codebase" - } - }, - "required": [ - "id", - "label", - "region", - "vcs_url", - "repository_id", - "created_at", - "updated_at", - "flags", - "hash", - "applications_total" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", - "label": "my-codebase", - "region": "us-east-1", - "vcs_url": "https://github.com/acquia/my-codebase.git", - "repository_id": "12345678", - "created_at": "2024-01-15T10:30:00Z", - "updated_at": "2024-01-15T10:30:00Z", - "description": "Main production codebase", - "flags": { - "is_active": true, - "is_meo": false - }, - "hash": "abc123def456", - "applications_total": 3, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4" - } - } - } - } - } - }, - "Codebase_Service_API_CodebaseCollection": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for the codebase" - }, - "label": { - "type": "string", - "description": "Human-readable label for the codebase" - }, - "region": { - "type": "string", - "description": "AWS region of the codebase" - }, - "vcs_url": { - "type": "string", - "format": "uri", - "description": "VCS repository URL" - }, - "repository_id": { - "type": "string", - "description": "VCS repository identifier" - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "Creation timestamp" - }, - "updated_at": { - "type": "string", - "format": "date-time", - "description": "Last update timestamp" - }, - "description": { - "type": "string", - "description": "Description of the codebase" - }, - "flags": { - "type": "object", - "properties": { - "is_active": { - "type": "boolean", - "description": "Whether the codebase is active" - }, - "is_meo": { - "type": "boolean", - "description": "Whether the codebase is MEO" - } - }, - "required": [ - "is_active", - "is_meo" - ], - "description": "Feature flags for the codebase" - }, - "hash": { - "type": "string", - "description": "Codebase hash" - }, - "applications_total": { - "type": "integer", - "description": "Total number of applications linked to this codebase" - } - }, - "required": [ - "id", - "label", - "region", - "vcs_url", - "repository_id", - "created_at", - "updated_at", - "flags", - "hash", - "applications_total" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "examples": { - "codebase_collection": { - "summary": "Codebase collection with pagination", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases?limit=10&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/codebases?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/codebases?limit=10{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/codebases?limit=10&offset=0{&filter}", - "templated": true - } - }, - "count": 1, - "total": 1, - "pagination": { - "total": 1, - "limit": 10, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", - "label": "my-codebase", - "region": "us-east-1", - "vcs_url": "https://github.com/acquia/my-codebase.git", - "repository_id": "12345678", - "created_at": "2024-01-15T10:30:00Z", - "updated_at": "2024-01-15T10:30:00Z", - "description": "Main production codebase", - "flags": { - "is_active": true, - "is_meo": false - }, - "hash": "abc123def456", - "applications_total": 3, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4" - } - } - } - ] - } - } - } - } - } - } - }, - "Codebase_Service_API_CodebaseReference": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for the reference" - }, - "name": { - "type": "string", - "description": "Name of the git reference" - }, - "type": { - "type": "string", - "enum": [ - "branch", - "tag" - ], - "description": "Type of the git reference" - } - }, - "required": [ - "id", - "name", - "type" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "id": "ref-123", - "name": "main", - "type": "branch", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references/main" - } - } - } - } - } - }, - "Codebase_Service_API_CodebaseReferenceCollection": { - "description": "A list of git references for the codebase", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for the reference" - }, - "name": { - "type": "string", - "description": "Name of the git reference" - }, - "type": { - "type": "string", - "enum": [ - "branch", - "tag" - ], - "description": "Type of the git reference" - } - }, - "required": [ - "id", - "name", - "type" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references?limit=10&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references?limit=10{&offset}", - "templated": true - } - }, - "count": 2, - "total": 2, - "pagination": { - "total": 2, - "limit": 10, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "ref-123", - "name": "main", - "type": "branch", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references/main" - } - } - }, - { - "id": "ref-456", - "name": "v1.0.0", - "type": "tag", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references/v1.0.0" - } - } - } - ] - } - } - } - } - }, - "Codebase_Service_API_DomainPattern": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Unique identifier for the domain pattern." - }, - "pattern": { - "type": "string", - "maxLength": 455, - "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", - "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].[environment-name].acme.com/app). Both [site-name] and [environment-name] tokens are mandatory at codebase level. Domain rules (enforced in service layer): ≤ 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] ≤ 14 chars, [environment-name] ≤ 10 chars). One pattern per codebase.\n", - "example": "[site-name].[environment-name].acme.com" - } - }, - "required": [ - "id", - "pattern" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "id": "22222222-2222-2222-2222-222222222222", - "pattern": "[site-name].[environment-name].acme.com", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findDomainPatternByCodebaseIdAndPatternId", - "parameters": { - "codebaseId": "$request.path.codebaseId", - "patternId": "$request.path.patternId" - } - } - } - }, - "Codebase_Service_API_DomainPatternCollection": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Unique identifier for the domain pattern." - }, - "pattern": { - "type": "string", - "maxLength": 455, - "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", - "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].[environment-name].acme.com/app). Both [site-name] and [environment-name] tokens are mandatory at codebase level. Domain rules (enforced in service layer): ≤ 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] ≤ 14 chars, [environment-name] ≤ 10 chars). One pattern per codebase.\n", - "example": "[site-name].[environment-name].acme.com" - } - }, - "required": [ - "id", - "pattern" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "examples": { - "domain_pattern_collection": { - "summary": "Domain pattern collection", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns" - }, - "limit": { - "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25{&offset}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25&offset=0{&sort}", - "templated": true - } - }, - "count": 1, - "total": 1, - "pagination": { - "total": 1, - "limit": 25, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "22222222-2222-2222-2222-222222222222", - "pattern": "[site-name].[environment-name].acme.com", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222" - } - } - } - ] - } - } - }, - "domain_pattern_collection_empty": { - "summary": "Empty domain pattern collection", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns" - }, - "limit": { - "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25{&offset}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25&offset=0{&sort}", - "templated": true - } - }, - "count": 0, - "total": 0, - "pagination": { - "total": 0, - "limit": 25, - "offset": 0 - }, - "_embedded": { - "items": [] - } - } - } - } - } - } - }, - "Codebase_Service_API_ForbiddenError": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "Codebase_Service_API_InternalServerError": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - }, - "Codebase_Service_API_InvalidOperationError": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "Codebase_Service_API_NotFoundError": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "Codebase_Service_API_SubscriptionCodebaseCollection": { - "description": "A list of codebases for the subscription", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for the codebase" - }, - "label": { - "type": "string", - "description": "Human-readable label for the codebase" - }, - "region": { - "type": "string", - "description": "AWS region of the codebase" - }, - "vcs_url": { - "type": "string", - "format": "uri", - "description": "VCS repository URL" - }, - "repository_id": { - "type": "string", - "description": "VCS repository identifier" - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "Creation timestamp" - }, - "updated_at": { - "type": "string", - "format": "date-time", - "description": "Last update timestamp" - }, - "description": { - "type": "string", - "description": "Description of the codebase" - }, - "flags": { - "type": "object", - "properties": { - "is_active": { - "type": "boolean", - "description": "Whether the codebase is active" - }, - "is_meo": { - "type": "boolean", - "description": "Whether the codebase is MEO" - } - }, - "required": [ - "is_active", - "is_meo" - ], - "description": "Feature flags for the codebase" - }, - "hash": { - "type": "string", - "description": "Codebase hash" - }, - "applications_total": { - "type": "integer", - "description": "Total number of applications linked to this codebase" - } - }, - "required": [ - "id", - "label", - "region", - "vcs_url", - "repository_id", - "created_at", - "updated_at", - "flags", - "hash", - "applications_total" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "examples": { - "subscription_codebase_collection": { - "summary": "Subscription codebase collection with pagination", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-12345/codebases?limit=10&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-12345/codebases?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-12345/codebases?limit=10{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-12345/codebases?limit=10&offset=0{&filter}", - "templated": true - } - }, - "count": 1, - "total": 1, - "pagination": { - "total": 1, - "limit": 10, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", - "label": "my-codebase", - "region": "us-east-1", - "vcs_url": "https://github.com/acquia/my-codebase.git", - "repository_id": "12345678", - "created_at": "2024-01-15T10:30:00Z", - "updated_at": "2024-01-15T10:30:00Z", - "description": "Main production codebase", - "flags": { - "is_active": true, - "is_meo": false - }, - "hash": "abc123def456", - "applications_total": 3, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4" - } - } - } - ] - } - } - } - } - } - } - }, - "Codebase_Service_API_UnauthorizedError": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "Codebase_Service_API_ValidationError": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "Tag_API_ForbiddenError": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "Tag_API_InternalServerError": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - }, - "Tag_API_NotFoundError": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "Tag_API_UnauthorizedError": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "Tag_API_TagCollection": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "minLength": 1, - "maxLength": 255, - "description": "The name of the tag" - }, - "color": { - "type": "string", - "pattern": "^#((?:[a-f0-9]{3}){1,2})$", - "minLength": 4, - "maxLength": 7, - "description": "The color of the tag" - } - }, - "required": [ - "name", - "color" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "examples": { - "tag_response": { - "summary": "Tag collection with pagination", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags?limit=2&offset=2" - }, - "limit": { - "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags?offset=2{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags?limit=2{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags?limit=2&offset=2{&filter}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags?limit=2&offset=2{&sort}", - "templated": true - }, - "prev": { - "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags?limit=2&offset=0" - }, - "next": { - "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags?offset=4&limit=2" - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "name": "tag-1", - "color": "#ffffff", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags/tag-1" - } - } - }, - { - "name": "tag-2", - "color": "#000000", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags/tag-2" - } - } - } - ] - } - } - } - } - } - } - }, - "Tag_API_Tag": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "minLength": 1, - "maxLength": 255, - "description": "The name of the tag" - }, - "color": { - "type": "string", - "pattern": "^#((?:[a-f0-9]{3}){1,2})$", - "minLength": 4, - "maxLength": 7, - "description": "The color of the tag" - } - }, - "required": [ - "name", - "color" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "name": "tag-1", - "color": "#ffffff", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api-framework/demo-php/api/tags/tag-1" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findTagByTagName", - "parameters": { - "tagName": "$request.path.tagName" - } - } - } - }, - "Tag_API_ValidationError": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "Tag_API_InvalidOperationError": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "Site_Service_API_ForbiddenError": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "Site_Service_API_InternalServerError": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - }, - "Site_Service_API_InvalidOperationError": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "Site_Service_API_NotFoundError": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "Site_Service_API_UnauthorizedError": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "Site_Service_API_ValidationError": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "Site_Service_API_Site": { - "description": "Site details", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "description": "A Site resource", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the site", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "12345678-1234-1234-1234-123456789012" - }, - "name": { - "type": "string", - "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", - "minLength": 1, - "maxLength": 14, - "pattern": "^[a-z][a-z0-9]*$", - "example": "mysite" - }, - "label": { - "type": "string", - "description": "The human-readable label of the site", - "minLength": 1, - "maxLength": 50, - "example": "My Site 1" - }, - "description": { - "type": "string", - "description": "A description of the site", - "maxLength": 512, - "example": "A production site for the marketing team." - }, - "codebase_id": { - "type": "string", - "description": "The unique identifier of the codebase this site belongs to", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "550e8400-e29b-41d4-a716-446655441210" - }, - "status": { - "type": "string", - "description": "The current lifecycle status of the site. ready indicates the site is active and operational. marked-for-deletion indicates the site has been scheduled for deletion and can still be recovered.\n", - "enum": [ - "ready", - "marked-for-deletion" - ], - "example": "ready" - }, - "delete_at": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime indicating when the site is scheduled for deletion. Only present when status is marked-for-deletion.", - "example": "2025-06-15T00:00:00Z" - } - }, - "required": [ - "id", - "name", - "label", - "codebase_id", - "status" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "codebase": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890" - }, - "codebase": { - "href": "https://cloud.acquia.com/api/codebases/a9b8c7d6-e5f4-3210-abcd-ef9876543210" - } - }, - "id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", - "name": "mysite", - "label": "My Site", - "description": "This is a description of my site.", - "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", - "status": "ready" - } - } - }, - "links": { - "self": { - "operationId": "findSiteBySiteId", - "parameters": { - "siteId": "$request.path.siteId" - } - } - } - }, - "Site_Service_API_SiteCollection": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "description": "A Site resource", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the site", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "12345678-1234-1234-1234-123456789012" - }, - "name": { - "type": "string", - "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", - "minLength": 1, - "maxLength": 14, - "pattern": "^[a-z][a-z0-9]*$", - "example": "mysite" - }, - "label": { - "type": "string", - "description": "The human-readable label of the site", - "minLength": 1, - "maxLength": 50, - "example": "My Site 1" - }, - "description": { - "type": "string", - "description": "A description of the site", - "maxLength": 512, - "example": "A production site for the marketing team." - }, - "codebase_id": { - "type": "string", - "description": "The unique identifier of the codebase this site belongs to", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "550e8400-e29b-41d4-a716-446655441210" - }, - "status": { - "type": "string", - "description": "The current lifecycle status of the site. ready indicates the site is active and operational. marked-for-deletion indicates the site has been scheduled for deletion and can still be recovered.\n", - "enum": [ - "ready", - "marked-for-deletion" - ], - "example": "ready" - }, - "delete_at": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime indicating when the site is scheduled for deletion. Only present when status is marked-for-deletion.", - "example": "2025-06-15T00:00:00Z" - } - }, - "required": [ - "id", - "name", - "label", - "codebase_id", - "status" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "examples": { - "site_collection": { - "summary": "Site collection with pagination", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/sites?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/sites?limit=2{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0{&filter}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api/sites?limit=2&offset=0{&sort}", - "templated": true - }, - "next": { - "href": "https://cloud.acquia.com/api/sites?limit=2&offset=2" - } - }, - "count": 2, - "total": 4, - "pagination": { - "total": 4, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", - "name": "mysite", - "label": "My Site", - "description": "A description of my site.", - "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", - "status": "ready", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890" - } - } - }, - { - "id": "e2b3c4d5-f6a7-8901-bcde-f12345678901", - "name": "anothersite", - "label": "Another Site", - "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", - "status": "marked-for-deletion", - "delete_at": "2025-01-01T00:00:00Z", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sites/e2b3c4d5-f6a7-8901-bcde-f12345678901" - } - } - } - ] - } - } - } - } - } - } - }, - "CDN_API_ValidationError": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "CDN_API_UnauthorizedError": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "CDN_API_ForbiddenError": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "CDN_API_NotFoundError": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "CDN_API_InvalidOperationError": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "CDN_API_InternalServerError": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - }, - "CDN_API_DomainCollection": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "description": "CDN domain resource.", - "properties": { - "domain": { - "type": "string", - "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?(\\.[a-zA-Z]{2,})+$", - "description": "The fully qualified domain name." - }, - "subscription_uuid": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "The unique identifier of the subscription the domain belongs to." - }, - "environment_id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "The environment identifier associated with the domain." - }, - "application_name": { - "type": "string", - "description": "The name of the application associated with the domain." - }, - "status": { - "type": "string", - "description": "The current status of the domain.", - "enum": [ - "connecting-to-edge", - "domain-validation-pending", - "ready-for-dns-repointing", - "configuration-failed", - "configured" - ] - }, - "ownership_validation_cname": { - "type": "string", - "description": "The CNAME record that must be created on the domain's DNS to validate ownership." - }, - "bandwidth_usage_tb": { - "type": "number", - "format": "float", - "description": "The bandwidth usage for the domain in terabytes." - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "The timestamp when the domain was created." - }, - "updated_at": { - "type": "string", - "format": "date-time", - "description": "The timestamp when the domain was last updated." - } - }, - "required": [ - "domain", - "subscription_uuid", - "environment_id", - "status", - "application_name", - "ownership_validation_cname", - "bandwidth_usage_tb", - "created_at", - "updated_at" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "examples": { - "domains_response": { - "summary": "Domain collection with pagination", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=0{&filter}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=0{&sort}", - "templated": true - }, - "next": { - "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=2" - } - }, - "count": 2, - "total": 50, - "pagination": { - "total": 50, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "domain": "example.com", - "subscription_uuid": "12345678-1234-1234-1234-123456789012", - "environment_id": "0c3f0f5f-5727-4838-9459-2d90ee1cf7c1", - "application_name": "my-application", - "status": "configured", - "created_at": "2024-01-15T10:30:00Z", - "updated_at": "2024-01-20T15:45:00Z", - "ownership_validation_cname": "_acme-challenge.example.com", - "bandwidth_usage_tb": 1.25, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains/example.com" - } - } - }, - { - "domain": "test.example.org", - "subscription_uuid": "12345678-1234-1234-1234-123456789012", - "environment_id": "1d4f1f6f-6838-5949-a560-3e01ff2cf8d2", - "application_name": "test-application", - "status": "connecting-to-edge", - "created_at": "2024-01-18T08:15:00Z", - "ownership_validation_cname": "_acme-challenge.example.com", - "bandwidth_usage_tb": 1.25, - "updated_at": "2024-01-18T08:15:00Z", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains/test.example.org" - } - } - } - ] - } - } - } - } - } - } - }, - "CDN_API_Domain": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "description": "CDN domain resource.", - "properties": { - "domain": { - "type": "string", - "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?(\\.[a-zA-Z]{2,})+$", - "description": "The fully qualified domain name." - }, - "subscription_uuid": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "The unique identifier of the subscription the domain belongs to." - }, - "environment_id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "The environment identifier associated with the domain." - }, - "application_name": { - "type": "string", - "description": "The name of the application associated with the domain." - }, - "status": { - "type": "string", - "description": "The current status of the domain.", - "enum": [ - "connecting-to-edge", - "domain-validation-pending", - "ready-for-dns-repointing", - "configuration-failed", - "configured" - ] - }, - "ownership_validation_cname": { - "type": "string", - "description": "The CNAME record that must be created on the domain's DNS to validate ownership." - }, - "bandwidth_usage_tb": { - "type": "number", - "format": "float", - "description": "The bandwidth usage for the domain in terabytes." - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "The timestamp when the domain was created." - }, - "updated_at": { - "type": "string", - "format": "date-time", - "description": "The timestamp when the domain was last updated." - } - }, - "required": [ - "domain", - "subscription_uuid", - "environment_id", - "status", - "application_name", - "ownership_validation_cname", - "bandwidth_usage_tb", - "created_at", - "updated_at" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "domain": "example.com", - "subscription_uuid": "12345678-1234-1234-1234-123456789012", - "environment_id": "0c3f0f5f-5727-4838-9459-2d90ee1cf7c1", - "application_name": "my-application", - "status": "configured", - "ownership_validation_cname": "_acme-challenge.example.com", - "bandwidth_usage_tb": 1.25, - "created_at": "2024-01-15T10:30:00Z", - "updated_at": "2024-01-20T15:45:00Z", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains/example.com" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findDomainBySubscriptionUuidAndDomainName", - "parameters": { - "subscriptionUuid": "$request.path.subscriptionUuid", - "domainName": "$request.path.domainName" - } - } - } - }, - "CDN_API_DomainCdnProvisioningAccepted": { - "description": "Accepted - Provisioning in progress", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "The domain provisioning has been started.", - "description": "Confirmation message" - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/subscriptions/12345678-1234-1234-1234-123456789012/domains/example.com" - } - }, - "message": "The domain provisioning has been started." - } - } - } - }, - "CDN_API_PurgeAccepted": { - "description": "Accepted - Purge request submitted", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "const": "The purge request has been submitted.", - "description": "Confirmation message" - }, - "purge_id": { - "type": "string", - "description": "Unique identifier for tracking the purge request" - } - }, - "required": [ - "purge_id" - ] - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/0c3f0f5f-5727-4838-9459-2d90ee1cf7c1/actions/purge-cdn" - } - }, - "message": "The purge request has been submitted.", - "purge_id": "purge-12345678-1234-1234-1234-123456789012" - } - } - } - }, - "Environment_Service_API_ForbiddenError": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "Environment_Service_API_InternalServerError": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - }, - "Environment_Service_API_NotFoundError": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "Environment_Service_API_UnauthorizedError": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "Environment_Service_API_ValidationError": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "Environment_Service_API_InvalidOperationError": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "Environment_Service_API_DeploymentCollection": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "description": "Deployment properties", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Unique identifier for the deployment." - }, - "environment_id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Identifier of the environment this deployment belongs to." - }, - "status": { - "type": "string", - "description": "Current status of the deployment.", - "enum": [ - "waiting", - "received", - "started", - "done", - "failed", - "error", - "killed" - ] - }, - "code_reference": { - "type": "string", - "description": "The code reference (e.g. branch or tag) deployed." - }, - "run_hooks": { - "type": "boolean", - "description": "Whether deployment hooks were run." - }, - "hooks_argument": { - "type": [ - "string", - "null" - ], - "description": "Additional arguments passed to deployment hooks." - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "Timestamp when the deployment was created." - }, - "started_at": { - "type": [ - "string", - "null" - ], - "format": "date-time", - "description": "Timestamp when the deployment started." - }, - "completed_at": { - "type": [ - "string", - "null" - ], - "format": "date-time", - "description": "Timestamp when the deployment completed." - }, - "sender_id": { - "type": [ - "string", - "null" - ], - "description": "Identifier of the user or system that initiated the deployment." - }, - "logs": { - "type": [ - "string", - "null" - ], - "description": "Deployment log output." - } - }, - "required": [ - "id", - "environment_id", - "status", - "code_reference", - "run_hooks", - "created_at" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "examples": { - "deployment_response": { - "summary": "Deployment collection with pagination", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=2" - }, - "limit": { - "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?offset=2{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=2{&filter}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=2{&sort}", - "templated": true - }, - "prev": { - "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=0" - }, - "next": { - "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=4" - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3", - "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", - "status": "done", - "code_reference": "tags/v1.0.0", - "run_hooks": true, - "hooks_argument": null, - "sender_id": null, - "created_at": "2025-04-01T13:01:06.603Z", - "started_at": "2025-04-01T13:01:10.123Z", - "completed_at": "2025-04-01T13:05:00.000Z", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" - }, - "environment": { - "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323" - } - } - }, - { - "id": "f1dae0f8-67c7-5d1e-cbe1-1f7604f77de4", - "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", - "status": "failed", - "code_reference": "tags/v0.9.0", - "run_hooks": false, - "hooks_argument": null, - "sender_id": null, - "created_at": "2025-03-28T09:15:00.000Z", - "started_at": "2025-03-28T09:15:05.000Z", - "completed_at": "2025-03-28T09:18:00.000Z", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/deployments/f1dae0f8-67c7-5d1e-cbe1-1f7604f77de4" - }, - "environment": { - "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323" - } - } - } - ] - } - } - } - } - } - } - }, - "Environment_Service_API_Deployment": { - "description": "Deployment details", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "description": "Deployment properties", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Unique identifier for the deployment." - }, - "environment_id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Identifier of the environment this deployment belongs to." - }, - "status": { - "type": "string", - "description": "Current status of the deployment.", - "enum": [ - "waiting", - "received", - "started", - "done", - "failed", - "error", - "killed" - ] - }, - "code_reference": { - "type": "string", - "description": "The code reference (e.g. branch or tag) deployed." - }, - "run_hooks": { - "type": "boolean", - "description": "Whether deployment hooks were run." - }, - "hooks_argument": { - "type": [ - "string", - "null" - ], - "description": "Additional arguments passed to deployment hooks." - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "Timestamp when the deployment was created." - }, - "started_at": { - "type": [ - "string", - "null" - ], - "format": "date-time", - "description": "Timestamp when the deployment started." - }, - "completed_at": { - "type": [ - "string", - "null" - ], - "format": "date-time", - "description": "Timestamp when the deployment completed." - }, - "sender_id": { - "type": [ - "string", - "null" - ], - "description": "Identifier of the user or system that initiated the deployment." - }, - "logs": { - "type": [ - "string", - "null" - ], - "description": "Deployment log output." - } - }, - "required": [ - "id", - "environment_id", - "status", - "code_reference", - "run_hooks", - "created_at" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "id": "e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3", - "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", - "status": "started", - "code_reference": "tags/v1.0.0", - "run_hooks": true, - "hooks_argument": "--skip-db-update", - "created_at": "2025-04-01T13:01:06.603Z", - "started_at": "2025-04-01T13:01:10.123Z", - "completed_at": null, - "sender_id": null, - "logs": null, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3" - }, - "environment": { - "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findDeploymentByDeploymentId", - "parameters": { - "deploymentId": "$request.path.deploymentId" - } - } - } - }, - "Environment_Service_API_CodeDeploy": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "concurrency": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "description": "Maximum number of concurrent code deploys allowed for the environment." - } - }, - "required": [ - "concurrency" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "concurrency": 5, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/code-deploy" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findCodeDeployByEnvironmentId", - "parameters": { - "environmentId": "$request.path.environmentId" - } - } - } - }, - "Environment_Service_API_Environment": { - "description": "Environment details", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "description": "Environment properties", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the environment", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "name": { - "type": "string", - "description": "The machine name of the environment" - }, - "label": { - "type": "string", - "description": "The human-readable label of the environment" - }, - "description": { - "type": "string", - "description": "A description of the environment" - }, - "status": { - "type": "string", - "description": "The current status of the environment", - "enum": [ - "normal", - "allocated", - "launching", - "killed", - "cancelled", - "stopped" - ] - }, - "flags": { - "type": "object", - "description": "Environment configuration flags", - "additionalProperties": { - "type": "boolean" - } - }, - "properties": { - "type": "object", - "description": "Environment PHP and server properties", - "properties": { - "version": { - "type": "string", - "description": "PHP version" - }, - "max_execution_time": { - "type": "integer", - "description": "Maximum execution time in seconds" - }, - "memory_limit": { - "type": "integer", - "description": "Memory limit in MB" - }, - "apcu": { - "type": "integer", - "description": "APCu cache size in MB" - }, - "client_max_body_size": { - "type": "integer", - "description": "Maximum client body size in MB" - }, - "max_input_vars": { - "type": "integer", - "description": "Maximum number of input variables" - }, - "max_post_size": { - "type": "integer", - "description": "Maximum POST size in MB" - }, - "memcached_limit": { - "type": "integer", - "description": "Memcached limit in MB" - }, - "upload_max_filesize": { - "type": "integer", - "description": "Maximum upload file size in MB" - }, - "operating_system": { - "type": "string", - "description": "Operating system codename" - } - } - }, - "reference": { - "type": "string", - "description": "The code reference (branch, tag, or commit) deployed to this environment" - }, - "code_switch_status": { - "type": "string", - "description": "The status of the Switch Code action", - "enum": [ - "IDLE", - "IN_PROGRESS" - ] - }, - "ssh_url": { - "type": "string", - "format": "uri", - "description": "The SSH connection string for accessing this environment" - } - }, - "required": [ - "id", - "name", - "label", - "status", - "flags", - "properties", - "reference", - "code_switch_status", - "ssh_url" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "codebase": { - "allOf": [ - { - "type": "object", - "description": "Embedded codebase resource", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the codebase" - } - }, - "required": [ - "id" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - } - } - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc" - }, - "codebase": { - "href": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323" - } - }, - "id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", - "name": "environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc", - "label": "Environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc", - "description": "Description of 3e8ecbec-ea7c-4260-8414-ef2938c859bc", - "status": "normal", - "flags": { - "production": false, - "protection_mode": false - }, - "properties": { - "version": "8.3", - "max_execution_time": 10, - "memory_limit": 192, - "apcu": 32, - "client_max_body_size": 192, - "max_input_vars": 1000, - "max_post_size": 256, - "memcached_limit": 128, - "upload_max_filesize": 192, - "operating_system": "focal" - }, - "reference": "tag/v3.1", - "code_switch_status": "IDLE", - "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", - "_embedded": { - "codebase": { - "id": "d3f7270e-c45f-4801-9308-5e8afe84a323", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323" - } - } - } - } - } - } - }, - "links": { - "self": { - "operationId": "findEnvironmentByEnvironmentId", - "parameters": { - "environmentId": "$request.path.environmentId" - } - } - } - }, - "Environment_Service_API_EnvironmentCollection": { - "description": "Environment collection", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "description": "Environment properties", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the environment", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "name": { - "type": "string", - "description": "The machine name of the environment" - }, - "label": { - "type": "string", - "description": "The human-readable label of the environment" - }, - "description": { - "type": "string", - "description": "A description of the environment" - }, - "status": { - "type": "string", - "description": "The current status of the environment", - "enum": [ - "normal", - "allocated", - "launching", - "killed", - "cancelled", - "stopped" - ] - }, - "flags": { - "type": "object", - "description": "Environment configuration flags", - "additionalProperties": { - "type": "boolean" - } - }, - "properties": { - "type": "object", - "description": "Environment PHP and server properties", - "properties": { - "version": { - "type": "string", - "description": "PHP version" - }, - "max_execution_time": { - "type": "integer", - "description": "Maximum execution time in seconds" - }, - "memory_limit": { - "type": "integer", - "description": "Memory limit in MB" - }, - "apcu": { - "type": "integer", - "description": "APCu cache size in MB" - }, - "client_max_body_size": { - "type": "integer", - "description": "Maximum client body size in MB" - }, - "max_input_vars": { - "type": "integer", - "description": "Maximum number of input variables" - }, - "max_post_size": { - "type": "integer", - "description": "Maximum POST size in MB" - }, - "memcached_limit": { - "type": "integer", - "description": "Memcached limit in MB" - }, - "upload_max_filesize": { - "type": "integer", - "description": "Maximum upload file size in MB" - }, - "operating_system": { - "type": "string", - "description": "Operating system codename" - } - } - }, - "reference": { - "type": "string", - "description": "The code reference (branch, tag, or commit) deployed to this environment" - }, - "code_switch_status": { - "type": "string", - "description": "The status of the Switch Code action", - "enum": [ - "IDLE", - "IN_PROGRESS" - ] - }, - "ssh_url": { - "type": "string", - "format": "uri", - "description": "The SSH connection string for accessing this environment" - } - }, - "required": [ - "id", - "name", - "label", - "status", - "flags", - "properties", - "reference", - "code_switch_status", - "ssh_url" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2{&offset}", - "templated": true - } - }, - "count": 1, - "total": 1, - "pagination": { - "total": 1, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", - "name": "dev", - "label": "Dev", - "description": "Development environment", - "status": "normal", - "reference": "branch/main", - "code_switch_status": "IDLE", - "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", - "flags": { - "production": false, - "protection_mode": false - }, - "properties": { - "version": "8.3" - }, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc" - } - } - } - ] - } - } - } - } - }, - "Environment_Service_API_FilterableEnvironmentCollection": { - "description": "Environment collection", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "description": "Environment properties", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the environment", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "name": { - "type": "string", - "description": "The machine name of the environment" - }, - "label": { - "type": "string", - "description": "The human-readable label of the environment" - }, - "description": { - "type": "string", - "description": "A description of the environment" - }, - "status": { - "type": "string", - "description": "The current status of the environment", - "enum": [ - "normal", - "allocated", - "launching", - "killed", - "cancelled", - "stopped" - ] - }, - "flags": { - "type": "object", - "description": "Environment configuration flags", - "additionalProperties": { - "type": "boolean" - } - }, - "properties": { - "type": "object", - "description": "Environment PHP and server properties", - "properties": { - "version": { - "type": "string", - "description": "PHP version" - }, - "max_execution_time": { - "type": "integer", - "description": "Maximum execution time in seconds" - }, - "memory_limit": { - "type": "integer", - "description": "Memory limit in MB" - }, - "apcu": { - "type": "integer", - "description": "APCu cache size in MB" - }, - "client_max_body_size": { - "type": "integer", - "description": "Maximum client body size in MB" - }, - "max_input_vars": { - "type": "integer", - "description": "Maximum number of input variables" - }, - "max_post_size": { - "type": "integer", - "description": "Maximum POST size in MB" - }, - "memcached_limit": { - "type": "integer", - "description": "Memcached limit in MB" - }, - "upload_max_filesize": { - "type": "integer", - "description": "Maximum upload file size in MB" - }, - "operating_system": { - "type": "string", - "description": "Operating system codename" - } - } - }, - "reference": { - "type": "string", - "description": "The code reference (branch, tag, or commit) deployed to this environment" - }, - "code_switch_status": { - "type": "string", - "description": "The status of the Switch Code action", - "enum": [ - "IDLE", - "IN_PROGRESS" - ] - }, - "ssh_url": { - "type": "string", - "format": "uri", - "description": "The SSH connection string for accessing this environment" - } - }, - "required": [ - "id", - "name", - "label", - "status", - "flags", - "properties", - "reference", - "code_switch_status", - "ssh_url" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2&offset=0{&filter}", - "templated": true - } - }, - "count": 1, - "total": 1, - "pagination": { - "total": 1, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", - "name": "dev", - "label": "Dev", - "description": "Development environment", - "status": "normal", - "reference": "branch/main", - "code_switch_status": "IDLE", - "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", - "flags": { - "production": false, - "protection_mode": false - }, - "properties": { - "version": "8.3" - }, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc" - } - } - } - ] - } - } - } - } - }, - "Environment_Service_API_SiteInstance": { - "description": "Site Instance details", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "description": "Site Instance properties", - "properties": { - "site_id": { - "type": "string", - "description": "The unique identifier of the site", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "environment_id": { - "type": "string", - "description": "The unique identifier of the environment", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "status": { - "type": "string", - "description": "The current status of the site instance", - "enum": [ - "active", - "creating", - "create-failed", - "updating", - "update-failed", - "deleting", - "deleted", - "delete-failed" - ] - }, - "health_status": { - "type": "object", - "description": "Health status information for the site instance", - "properties": { - "code": { - "type": "string", - "description": "Health status code" - }, - "summary": { - "type": "string", - "description": "Summary of the health status" - }, - "details": { - "type": "string", - "description": "Detailed health status information" - } - }, - "required": [ - "code", - "summary", - "details" - ] - }, - "domains": { - "type": "array", - "description": "List of domains associated with the site instance", - "items": { - "type": "string" - } - }, - "deployment_order": { - "type": [ - "integer", - "null" - ], - "description": "The order in which this site instance is deployed relative to others.", - "example": 1 - }, - "delete_at": { - "type": [ - "string", - "null" - ], - "format": "date-time", - "description": "The scheduled deletion date-time for this site instance, if set." - }, - "date_marked_for_deletion": { - "type": [ - "string", - "null" - ], - "format": "date-time", - "description": "The date-time when this site instance was marked for deletion." - }, - "protection_mode": { - "type": [ - "object", - "null" - ], - "description": "The current protection mode of the site instance", - "properties": { - "is_enabled": { - "type": "boolean", - "description": "Indicates whether the protection mode is enabled for the site instance" - }, - "is_inherited": { - "type": "boolean", - "description": "Indicates whether the protection mode is inherited from the environment" - } - }, - "required": [ - "is_enabled", - "is_inherited" - ] - } - }, - "required": [ - "site_id", - "environment_id", - "status", - "health_status", - "domains" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323" - } - }, - "site_id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", - "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", - "status": "active", - "health_status": { - "code": "OK", - "summary": "The health status is OK.", - "details": "The site instance is active" - }, - "domains": [ - "example.com", - "example-2.com" - ], - "protection_mode": { - "is_enabled": true, - "is_inherited": true - } - } - } - }, - "links": { - "self": { - "operationId": "findSiteInstanceBySiteIdAndEnvironmentId", - "parameters": { - "siteId": "$request.path.siteId", - "environmentId": "$request.path.environmentId" - } - } - } - }, - "Environment_Service_API_Domain": { - "description": "Domain details", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "description": "Domain properties", - "properties": { - "name": { - "type": "string", - "description": "The domain name." - }, - "is_managed": { - "type": "boolean", - "description": "Whether the domain is managed by Acquia." - } - }, - "required": [ - "name", - "is_managed" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "name": "example.com", - "is_managed": false, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findDomainBySiteIdAndEnvironmentIdAndDomainName", - "parameters": { - "siteId": "$request.path.siteId", - "environmentId": "$request.path.environmentId", - "domainName": "$request.path.domainName" - } - } - } - }, - "Environment_Service_API_DomainCollection": { - "description": "Domain collection", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "description": "Domain properties", - "properties": { - "name": { - "type": "string", - "description": "The domain name." - }, - "is_managed": { - "type": "boolean", - "description": "Whether the domain is managed by Acquia." - } - }, - "required": [ - "name", - "is_managed" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2&offset=0{&filter}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2&offset=0{&sort}", - "templated": true - } - }, - "count": 1, - "total": 1, - "pagination": { - "total": 1, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "name": "example.com", - "is_managed": false, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com" - } - } - } - ] - } - } - } - } - }, - "Environment_Service_API_DomainStatus": { - "description": "Domain DNS status details", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "description": "Domain DNS status properties", - "properties": { - "hostname": { - "type": "string", - "description": "The domain name." - }, - "site_id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Identifier of the site this domain belongs to." - }, - "environment_id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Identifier of the environment this domain belongs to." - }, - "ip_addresses": { - "type": "array", - "description": "List of IP addresses resolving for this domain.", - "items": { - "type": "string" - } - }, - "cnames": { - "type": "array", - "description": "List of CNAME records resolving for this domain.", - "items": { - "type": "string" - } - }, - "flags": { - "type": "object", - "description": "Status flags for the domain.", - "properties": { - "default": { - "type": "boolean", - "description": "Whether this is the default domain." - }, - "active": { - "type": "boolean", - "description": "Whether the domain is active." - }, - "dns_resolves": { - "type": "boolean", - "description": "Whether the domain DNS resolves correctly." - }, - "acquia_hosted": { - "type": "boolean", - "description": "Whether the domain is hosted on Acquia infrastructure." - } - }, - "required": [ - "default", - "active", - "dns_resolves", - "acquia_hosted" - ] - } - }, - "required": [ - "hostname", - "site_id", - "environment_id", - "ip_addresses", - "cnames", - "flags" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "hostname": "example.com", - "site_id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", - "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", - "ip_addresses": [ - "203.0.113.10" - ], - "cnames": [], - "flags": { - "default": false, - "active": true, - "dns_resolves": true, - "acquia_hosted": true - }, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com/status" - } - } - } - } - } - }, - "Environment_Service_API_Database": { - "description": "Database details", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "description": "Database properties", - "properties": { - "database_name": { - "type": "string", - "description": "The name of the database." - }, - "database_role": { - "type": "string", - "description": "The role of the database (e.g. the site username)." - } - }, - "required": [ - "database_name", - "database_role" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "database_name": "site_dev", - "database_role": "site_dev_user", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findDatabaseBySiteIdAndEnvironmentId", - "parameters": { - "siteId": "$request.path.siteId", - "environmentId": "$request.path.environmentId" - } - } - } - }, - "Environment_Service_API_DatabaseConnection": { - "description": "Database connection credential details", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "description": "Database connection credential properties", - "properties": { - "db_host": { - "type": "string", - "description": "The database host." - }, - "name": { - "type": "string", - "description": "The database name." - }, - "password": { - "type": "string", - "description": "The database password." - }, - "user_name": { - "type": "string", - "description": "The database username." - }, - "ssh_host": { - "type": "string", - "description": "The SSH host for tunneling to the database." - } - }, - "required": [ - "db_host", - "name", - "password", - "user_name", - "ssh_host" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "db_host": "db.example.com", - "name": "site_dev", - "password": "s3cr3t", - "user_name": "site_dev_user", - "ssh_host": "site.dev.ssh.hosted.acquia-sites.com", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/connection" - } - } - } - } - } - }, - "Environment_Service_API_DatabaseBackup": { - "description": "Database backup details", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "description": "Database backup properties", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Unique identifier for the database backup." - }, - "database_id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Identifier of the database this backup belongs to." - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "Timestamp when the backup was created." - }, - "type": { - "type": "string", - "enum": [ - "DAILY", - "ON_DEMAND" - ], - "description": "The type of backup." - } - }, - "required": [ - "id", - "database_id", - "created_at", - "type" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", - "database_id": "b2c3d4e5-f6a7-8901-bcde-f01234567891", - "created_at": "2025-04-01T02:00:00.000Z", - "type": "DAILY", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups/a1b2c3d4-e5f6-7890-abcd-ef1234567890" - }, - "download": { - "href": "https://s3.amazonaws.com/acquia-backups/backup-a1b2c3d4.sql.gz?X-Amz-Expires=3600&X-Amz-Signature=abc123" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findDatabaseBackupBySiteIdAndEnvironmentIdAndBackupId", - "parameters": { - "siteId": "$request.path.siteId", - "environmentId": "$request.path.environmentId", - "backupId": "$request.path.backupId" - } - } - } - }, - "Environment_Service_API_DatabaseBackupCollection": { - "description": "Database backup collection", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "description": "Database backup properties", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Unique identifier for the database backup." - }, - "database_id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Identifier of the database this backup belongs to." - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "Timestamp when the backup was created." - }, - "type": { - "type": "string", - "enum": [ - "DAILY", - "ON_DEMAND" - ], - "description": "The type of backup." - } - }, - "required": [ - "id", - "database_id", - "created_at", - "type" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2&offset=0{&filter}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2&offset=0{&sort}", - "templated": true - } - }, - "count": 1, - "total": 1, - "pagination": { - "total": 1, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", - "database_id": "b2c3d4e5-f6a7-8901-bcde-f01234567891", - "created_at": "2025-04-01T02:00:00.000Z", - "type": "DAILY", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups/a1b2c3d4-e5f6-7890-abcd-ef1234567890" - } - } - } - ] - } - } - } - } - }, - "Environment_Service_API_EgressIpCollection": { - "description": "Egress IP collection", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "description": "Egress IP properties", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Unique identifier for the egress IP." - }, - "status": { - "type": "string", - "description": "Current status of the egress IP." - }, - "ipv4": { - "type": "string", - "description": "The IPv4 address." - }, - "ipv6": { - "type": [ - "string", - "null" - ], - "description": "The IPv6 address, if assigned." - }, - "flags": { - "type": "object", - "description": "Status flags for the egress IP.", - "additionalProperties": { - "type": "boolean" - } - } - }, - "required": [ - "id", - "status", - "ipv4", - "flags" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "example": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/eips?limit=25&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/eips?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/eips?limit=25{&offset}", - "templated": true - } - }, - "count": 1, - "total": 1, - "pagination": { - "total": 1, - "limit": 25, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "eip-a1b2c3d4-e5f6-7890-abcd-ef1234567890", - "status": "active", - "ipv4": "203.0.113.10", - "ipv6": null, - "flags": { - "is_primary": true - } - } - ] - } - } - } - } - }, - "Environment_Service_API_TrustedProxies": { - "description": "Trusted proxy configuration details", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "description": "Trusted proxy configuration properties", - "properties": { - "cidrs_ipv4": { - "type": "array", - "description": "List of trusted IPv4 CIDR blocks.", - "items": { - "type": "string" - } - }, - "cidrs_ipv6": { - "type": "array", - "description": "List of trusted IPv6 CIDR blocks.", - "items": { - "type": "string" - } - }, - "associated_cdns": { - "type": "object", - "description": "Map of CDN configurations associated with this environment, keyed by CDN name.", - "additionalProperties": { - "type": "object", - "properties": { - "label": { - "type": "string", - "description": "Display label for the CDN." - }, - "is_enabled": { - "type": "boolean", - "description": "Whether the CDN is enabled." - } - }, - "required": [ - "label", - "is_enabled" - ] - } - } - }, - "required": [ - "cidrs_ipv4", - "cidrs_ipv6", - "associated_cdns" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "cidrs_ipv4": [ - "203.0.113.0/24" - ], - "cidrs_ipv6": [], - "associated_cdns": { - "cloudflare": { - "label": "Cloudflare", - "is_enabled": true - } - }, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/trusted-proxies" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findTrustedProxiesByEnvironmentId", - "parameters": { - "environmentId": "$request.path.environmentId" - } - } - } - }, - "Environment_Service_API_PrivateNetwork": { - "description": "Private network details", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "description": "Private network reference properties", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Unique identifier for the private network." - }, - "label": { - "type": [ - "string", - "null" - ], - "description": "Human-readable label for the private network." - } - }, - "required": [ - "id" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "id": "pn-a1b2c3d4-e5f6-7890-abcd-ef1234567890", - "label": "Production VPC", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/private-network" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findPrivateNetworkByEnvironmentId", - "parameters": { - "environmentId": "$request.path.environmentId" - } - } - } - }, - "Environment_Service_API_DomainPattern": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Unique identifier for the domain pattern." - }, - "pattern": { - "type": "string", - "maxLength": 455, - "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", - "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].acme.com/app). The [site-name] token is mandatory; [environment-name] is optional at environment level. Domain rules (enforced in service layer): ≤ 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] ≤ 14 chars). One pattern per environment.\n", - "example": "[site-name].acme.com" - } - }, - "required": [ - "id", - "pattern" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "id": "11111111-1111-1111-1111-111111111111", - "pattern": "[site-name].acme.com", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findDomainPatternByEnvironmentIdAndPatternId", - "parameters": { - "environmentId": "$request.path.environmentId", - "patternId": "$request.path.patternId" - } - } - } - }, - "Environment_Service_API_DomainPatternCollection": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Unique identifier for the domain pattern." - }, - "pattern": { - "type": "string", - "maxLength": 455, - "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", - "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].acme.com/app). The [site-name] token is mandatory; [environment-name] is optional at environment level. Domain rules (enforced in service layer): ≤ 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] ≤ 14 chars). One pattern per environment.\n", - "example": "[site-name].acme.com" - } - }, - "required": [ - "id", - "pattern" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "examples": { - "domain_pattern_collection": { - "summary": "Domain pattern collection", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns" - }, - "limit": { - "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25{&offset}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25&offset=0{&sort}", - "templated": true - } - }, - "count": 1, - "total": 1, - "pagination": { - "total": 1, - "limit": 25, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "11111111-1111-1111-1111-111111111111", - "pattern": "[site-name].acme.com", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111" - } - } - } - ] - } - } - }, - "domain_pattern_collection_empty": { - "summary": "Empty domain pattern collection", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns" - }, - "limit": { - "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25{&offset}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25&offset=0{&sort}", - "templated": true - } - }, - "count": 0, - "total": 0, - "pagination": { - "total": 0, - "limit": 25, - "offset": 0 - }, - "_embedded": { - "items": [] - } - } - } - } - } - } - }, - "Federated_Authentication_API_IdentityProvider": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "identity_provider_id": { - "type": "string", - "description": "Unique identifier for the identity provider." - }, - "label": { - "type": "string", - "description": "The name of the Identity Provider." - }, - "subscription_id": { - "type": "string", - "description": "Unique identifier for the subscription that the Identity Provider belongs to." - }, - "idp_entity_id": { - "type": "string", - "format": "uri", - "description": "The Identity Provider Entity ID." - }, - "sp_entity_id": { - "type": "string", - "format": "uri", - "description": "The Service Provider Entity ID." - }, - "sso_url": { - "type": "string", - "format": "uri", - "description": "The Single Sign-On URL for the Identity Provider." - }, - "certificate": { - "type": "string", - "description": "The X.509 certificate used for SAML authentication." - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "Timestamp when the Identity Provider was created." - } - }, - "required": [ - "identity_provider_id", - "label", - "subscription_id", - "idp_entity_id", - "sp_entity_id", - "sso_url", - "certificate", - "created_at" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "identity_provider_id": "908914ec-2354-4fb1-9298-637247eccc3a", - "label": "Acme Corporation Azure AD", - "subscription_id": "sub-123", - "idp_entity_id": "https://idp.acme.com/saml", - "sp_entity_id": "https://sp.acme.com/saml", - "sso_url": "https://acme.com/sso", - "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", - "created_at": "2026-04-15T11:00:00Z", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a" - }, - "sso_policy": { - "href": "https://cloud.acquia.com/api/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a/policies/sso" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findIdentityProviderByIdentityProviderId", - "parameters": { - "identityProviderId": "$response.body#/identity_provider_id" - } - }, - "update": { - "operationId": "updateIdentityProviderByIdentityProviderId", - "parameters": { - "identityProviderId": "$response.body#/identity_provider_id" - } - }, - "delete": { - "operationId": "deleteIdentityProviderByIdentityProviderId", - "parameters": { - "identityProviderId": "$response.body#/identity_provider_id" - } - }, - "enable_sso_policy": { - "operationId": "enableIdentityProviderSSOPolicyByIdentityProviderId", - "parameters": { - "identityProviderId": "$response.body#/identity_provider_id" - } - }, - "disable_sso_policy": { - "operationId": "disableIdentityProviderSSOPolicyByIdentityProviderId", - "parameters": { - "identityProviderId": "$response.body#/identity_provider_id" - } - } - } - }, - "Federated_Authentication_API_IdentityProviderCollection": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "properties": { - "identity_provider_id": { - "type": "string", - "description": "Unique identifier for the identity provider." - }, - "label": { - "type": "string", - "description": "The name of the Identity Provider." - }, - "subscription_id": { - "type": "string", - "description": "Unique identifier for the subscription that the Identity Provider belongs to." - }, - "idp_entity_id": { - "type": "string", - "format": "uri", - "description": "The Identity Provider Entity ID." - }, - "sp_entity_id": { - "type": "string", - "format": "uri", - "description": "The Service Provider Entity ID." - }, - "sso_url": { - "type": "string", - "format": "uri", - "description": "The Single Sign-On URL for the Identity Provider." - }, - "certificate": { - "type": "string", - "description": "The X.509 certificate used for SAML authentication." - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "Timestamp when the Identity Provider was created." - } - }, - "required": [ - "identity_provider_id", - "label", - "subscription_id", - "idp_entity_id", - "sp_entity_id", - "sso_url", - "certificate", - "created_at" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "examples": { - "identity_provider_response": { - "summary": "Identity provider collection with pagination", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2&offset=2" - }, - "limit": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?offset=2{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2&offset=2{&filter}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2&offset=2{&sort}", - "templated": true - }, - "prev": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?limit=2&offset=0" - }, - "next": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/identity-providers?offset=4&limit=2" - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "identity_provider_id": "908914ec-2354-4fb1-9298-637247eccc3a", - "label": "Acme Corporation Azure AD", - "subscription_id": "sub-123", - "idp_entity_id": "https://idp.acme.com/saml", - "sp_entity_id": "https://sp.acme.com/saml", - "sso_url": "https://acme.com/sso", - "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", - "created_at": "2026-04-15T11:00:00Z", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a" - }, - "sso_policy": { - "href": "https://cloud.acquia.com/api/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a/policies/sso" - } - } - }, - { - "identity_provider_id": "123456ec-2354-4fb1-9298-637247eccc3b", - "label": "Acme Research Ping Identity", - "subscription_id": "sub-123", - "idp_entity_id": "https://idp-research.acme.com/saml", - "sp_entity_id": "https://sp-research.acme.com/saml", - "sso_url": "https://research.acme.com/sso", - "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", - "created_at": "2026-04-20T14:20:00Z", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/identity-providers/123456ec-2354-4fb1-9298-637247eccc3b" - }, - "sso_policy": { - "href": "https://cloud.acquia.com/api/identity-providers/123456ec-2354-4fb1-9298-637247eccc3b/policies/sso" - } - } - } - ] - } - } - } - } - } - } - }, - "Federated_Authentication_API_SsoDomain": { - "description": "OK. The `_links` object always contains `self`. Additional links are state-conditional: `verify` is present when `health.code` is `202` or `404` (POST it to initiate or retry DNS TXT record verification); `identity_providers` is present when the domain is referenced by one or more Identity Provider policies (follows to a filtered list of those IdPs; when present the domain cannot be deleted — remove it from all policies first).", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "domain_id": { - "type": "string", - "description": "Unique identifier for the domain." - }, - "domain": { - "type": "string", - "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", - "description": "The domain name (e.g., \"acme.com\")." - }, - "subscription_id": { - "type": "string", - "description": "Unique identifier for the subscription that the domain belongs to." - }, - "health": { - "type": "object", - "description": "The overall verification health of the domain. Uses the same code semantics as the platform email domain-verification system: `200` verified, `202` verification pending or in progress, `404` DNS record not found or could not be validated.", - "properties": { - "code": { - "type": "string", - "enum": [ - "200", - "202", - "404" - ], - "description": "Machine-readable verification status code. `200` — verified. `202` — verification pending or in progress; retry after propagation. `404` — DNS TXT record not found or does not match expected value." - }, - "summary": { - "type": "string", - "description": "Short human-readable label for the verification state (e.g., \"Verified\", \"Verification pending\", \"Missing DNS record\")." - }, - "details": { - "type": "string", - "description": "Actionable explanation of the current state. For `404`, describes what was checked and what the customer should do next." - } - }, - "required": [ - "code", - "summary", - "details" - ] - }, - "verification_record": { - "type": "object", - "description": "DNS TXT record the customer must publish to verify domain ownership.", - "properties": { - "type": { - "type": "string", - "const": "TXT", - "description": "DNS record type." - }, - "host": { - "type": "string", - "description": "DNS record host name." - }, - "value": { - "type": "string", - "description": "Expected DNS record value." - }, - "health": { - "type": "object", - "description": "Verification health specific to this DNS record. Anchors the failure reason to the exact record the customer needs to fix, matching the per-record health pattern used in platform email domain verification.", - "properties": { - "code": { - "type": "string", - "enum": [ - "200", - "202", - "404" - ], - "description": "`200` — record found and value matches. `202` — check in progress. `404` — record not found or value does not match." - }, - "summary": { - "type": "string", - "description": "Short human-readable label for this record's verification state." - }, - "details": { - "type": "string", - "description": "Actionable explanation; for `404`, states what was checked and what to fix." - } - }, - "required": [ - "code", - "summary", - "details" - ] - } - }, - "required": [ - "type", - "host", - "value", - "health" - ] - }, - "verified_at": { - "type": "string", - "format": "date-time", - "description": "Timestamp when the domain was successfully verified. Present only when `health.code` is `200`." - } - }, - "required": [ - "domain_id", - "domain", - "subscription_id", - "health", - "verification_record" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "examples": { - "pending_verification": { - "summary": "Domain awaiting DNS verification", - "description": "A newly created domain whose DNS TXT record has not yet been confirmed. `health.code` is `202`; the `verify` link is present so the client can trigger or retry the check. `identity_providers` is absent because no policy can reference an unverified domain.", - "value": { - "domain_id": "dom-789", - "domain": "acme.corp", - "subscription_id": "sub-123", - "health": { - "code": "202", - "summary": "Verification pending", - "details": "Acquia is waiting to confirm the DNS TXT record. Ensure the record has been published and allow time for DNS propagation, then retry verification." - }, - "verification_record": { - "type": "TXT", - "host": "_acquia-challenge.acme.corp", - "value": "xyz789abc123", - "health": { - "code": "202", - "summary": "Check in progress", - "details": "The TXT record check has not yet completed." - } - }, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sso-domains/dom-789" - }, - "verify": { - "href": "https://cloud.acquia.com/api/sso-domains/dom-789/actions/verify" - } - } - } - }, - "failed_verification": { - "summary": "Domain verification failed — DNS record not found", - "description": "A domain whose TXT record could not be found. `health.code` is `404`; `details` names the exact record to check. The `verify` link is present so the client can retry after fixing the DNS entry.", - "value": { - "domain_id": "dom-789", - "domain": "acme.corp", - "subscription_id": "sub-123", - "health": { - "code": "404", - "summary": "Missing DNS record", - "details": "Acquia could not verify the presence of the required TXT DNS record at _acquia-challenge.acme.corp. Ensure the record is published with the correct value and retry verification." - }, - "verification_record": { - "type": "TXT", - "host": "_acquia-challenge.acme.corp", - "value": "xyz789abc123", - "health": { - "code": "404", - "summary": "Missing DNS record", - "details": "The TXT record at _acquia-challenge.acme.corp was not found or does not match the expected value xyz789abc123." - } - }, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sso-domains/dom-789" - }, - "verify": { - "href": "https://cloud.acquia.com/api/sso-domains/dom-789/actions/verify" - } - } - } - }, - "verified_in_use": { - "summary": "Verified domain referenced by an Identity Provider policy", - "description": "A verified domain enforced by at least one Identity Provider policy. `health.code` is `200`; `verify` is absent; `identity_providers` is present. A DELETE on this domain will return 409 until the domain is removed from all policies.", - "value": { - "domain_id": "dom-456", - "domain": "acme.com", - "subscription_id": "sub-123", - "health": { - "code": "200", - "summary": "Verified", - "details": "The DNS TXT record has been confirmed and the domain is verified." - }, - "verification_record": { - "type": "TXT", - "host": "_acquia-challenge.acme.com", - "value": "abc123def456", - "health": { - "code": "200", - "summary": "Verified", - "details": "The TXT record at _acquia-challenge.acme.com matches the expected value." - } - }, - "verified_at": "2026-04-15T10:30:00Z", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sso-domains/dom-456" - }, - "identity_providers": { - "href": "https://cloud.acquia.com/api/identity-providers?filter=domain_id%3Ddom-456" - } - } - } - } - } - } - }, - "links": { - "self": { - "operationId": "findSsoDomainBySsoDomainId", - "parameters": { - "domainId": "$response.body#/domain_id" - } - }, - "delete": { - "operationId": "deleteSsoDomainBySsoDomainId", - "parameters": { - "domainId": "$response.body#/domain_id" - } - }, - "verify": { - "operationId": "verifySsoDomainBySsoDomainId", - "parameters": { - "domainId": "$response.body#/domain_id" - } - } - } - }, - "Federated_Authentication_API_SsoDomainCollection": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "properties": { - "domain_id": { - "type": "string", - "description": "Unique identifier for the domain." - }, - "domain": { - "type": "string", - "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", - "description": "The domain name (e.g., \"acme.com\")." - }, - "subscription_id": { - "type": "string", - "description": "Unique identifier for the subscription that the domain belongs to." - }, - "health": { - "type": "object", - "description": "The overall verification health of the domain. Uses the same code semantics as the platform email domain-verification system: `200` verified, `202` verification pending or in progress, `404` DNS record not found or could not be validated.", - "properties": { - "code": { - "type": "string", - "enum": [ - "200", - "202", - "404" - ], - "description": "Machine-readable verification status code. `200` — verified. `202` — verification pending or in progress; retry after propagation. `404` — DNS TXT record not found or does not match expected value." - }, - "summary": { - "type": "string", - "description": "Short human-readable label for the verification state (e.g., \"Verified\", \"Verification pending\", \"Missing DNS record\")." - }, - "details": { - "type": "string", - "description": "Actionable explanation of the current state. For `404`, describes what was checked and what the customer should do next." - } - }, - "required": [ - "code", - "summary", - "details" - ] - }, - "verification_record": { - "type": "object", - "description": "DNS TXT record the customer must publish to verify domain ownership.", - "properties": { - "type": { - "type": "string", - "const": "TXT", - "description": "DNS record type." - }, - "host": { - "type": "string", - "description": "DNS record host name." - }, - "value": { - "type": "string", - "description": "Expected DNS record value." - }, - "health": { - "type": "object", - "description": "Verification health specific to this DNS record. Anchors the failure reason to the exact record the customer needs to fix, matching the per-record health pattern used in platform email domain verification.", - "properties": { - "code": { - "type": "string", - "enum": [ - "200", - "202", - "404" - ], - "description": "`200` — record found and value matches. `202` — check in progress. `404` — record not found or value does not match." - }, - "summary": { - "type": "string", - "description": "Short human-readable label for this record's verification state." - }, - "details": { - "type": "string", - "description": "Actionable explanation; for `404`, states what was checked and what to fix." - } - }, - "required": [ - "code", - "summary", - "details" - ] - } - }, - "required": [ - "type", - "host", - "value", - "health" - ] - }, - "verified_at": { - "type": "string", - "format": "date-time", - "description": "Timestamp when the domain was successfully verified. Present only when `health.code` is `200`." - } - }, - "required": [ - "domain_id", - "domain", - "subscription_id", - "health", - "verification_record" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "examples": { - "domain_response": { - "summary": "Domain collection with pagination", - "description": "Two domains in different states: one verified and in use by a policy (carries `identity_providers` link), one pending verification (carries `verify` link).", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?limit=2&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?limit=2{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?limit=2&offset=0{&filter}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?limit=2&offset=0{&sort}", - "templated": true - }, - "next": { - "href": "https://cloud.acquia.com/api/subscriptions/sub-123/sso-domains?offset=2&limit=2" - } - }, - "count": 2, - "total": 3, - "pagination": { - "total": 3, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "domain_id": "dom-456", - "domain": "acme.com", - "subscription_id": "sub-123", - "health": { - "code": "200", - "summary": "Verified", - "details": "The DNS TXT record has been confirmed and the domain is verified." - }, - "verification_record": { - "type": "TXT", - "host": "_acquia-challenge.acme.com", - "value": "abc123def456", - "health": { - "code": "200", - "summary": "Verified", - "details": "The TXT record at _acquia-challenge.acme.com matches the expected value." - } - }, - "verified_at": "2026-04-15T10:30:00Z", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sso-domains/dom-456" - }, - "identity_providers": { - "href": "https://cloud.acquia.com/api/identity-providers?filter=domain_id%3Ddom-456" - } - } - }, - { - "domain_id": "dom-789", - "domain": "acme.corp", - "subscription_id": "sub-123", - "health": { - "code": "202", - "summary": "Verification pending", - "details": "Acquia is waiting to confirm the DNS TXT record. Ensure the record has been published and allow time for DNS propagation, then retry verification." - }, - "verification_record": { - "type": "TXT", - "host": "_acquia-challenge.acme.corp", - "value": "xyz789abc123", - "health": { - "code": "202", - "summary": "Check in progress", - "details": "The TXT record check has not yet completed." - } - }, - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/sso-domains/dom-789" - }, - "verify": { - "href": "https://cloud.acquia.com/api/sso-domains/dom-789/actions/verify" - } - } - } - ] - } - } - } - } - } - } - }, - "Federated_Authentication_API_ValidationError": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - } - } - }, - "Federated_Authentication_API_UnauthorizedError": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "Federated_Authentication_API_ForbiddenError": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "Federated_Authentication_API_NotFoundError": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "Federated_Authentication_API_InternalServerError": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - }, - "Federated_Authentication_API_InvalidOperationError": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "SSH_Key_Service_API_SshKeyCollection": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - }, - { - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - }, - { - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - }, - { - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering." - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - } - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - }, - { - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting." - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - } - } - } - ] - }, - { - "type": "object", - "description": "A collection of SSH keys.", - "properties": { - "_embedded": { - "type": "object", - "description": "A collection of SSH keys matching the request parameters.", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "required": [ - "id", - "label", - "public_key", - "fingerprint", - "created_at", - "user_id" - ], - "description": "Details an SSH key.", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the SSH key.", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "label": { - "type": "string", - "description": "The human-readable key label." - }, - "public_key": { - "type": "string", - "description": "The public key.", - "minLength": 64 - }, - "fingerprint": { - "type": "string", - "description": "The public key fingerprint.", - "pattern": "^[A-Za-z0-9:+/=.-]+$" - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "The key creation date." - }, - "user_id": { - "type": "string", - "description": "The unique identifier of the user who owns this SSH key.", - "pattern": "^[a-zA-Z0-9-]+$" - } - } - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "examples": { - "ssh_keys": { - "summary": "SSH key collection", - "value": { - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/ssh-keys?limit=2&offset=0" - }, - "limit": { - "href": "https://cloud.acquia.com/api/ssh-keys?offset=0{&limit}", - "templated": true - }, - "offset": { - "href": "https://cloud.acquia.com/api/ssh-keys?limit=2{&offset}", - "templated": true - }, - "filter": { - "href": "https://cloud.acquia.com/api/ssh-keys?limit=2&offset=0{&filter}", - "templated": true - }, - "sort": { - "href": "https://cloud.acquia.com/api/ssh-keys?limit=2&offset=0{&sort}", - "templated": true - }, - "next": { - "href": "https://cloud.acquia.com/api/ssh-keys?limit=2&offset=2" - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "1acbb1a5-e864-4b8e-a3f9-b1ed462afd25", - "label": "primary", - "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQChwPHzTTDKDpSbpa2+d22LcbQmsw92eLsUK3Fmei1fiGDkd34NsYCN8m7lsi3NbvdMS83CtPQPWiCveYPzFs1/hHc4PYj8opD2CNnr5iWVVbyaulCYHCgVv4aB/ojcexg8q483A4xJeF15TiCr/gu34rK6ucTvC/tn/rCwJBudczvEwt0klqYwv8Cl/ytaQboSuem5KgSjO3lMrb6CWtfSNhE43ZOw+UBFBqxIninN868vGMkIv9VY34Pwj54rPn/ItQd6Ef4B0KHHaGmzK0vfP+AK7FxNMoHnj3iYT33KZNqtDozdn5tYyH/bThPebEtgqUn+/w5l6wZIC/8zzvls/127ngHk+jNa0PlNyS2TxhPUK4NaPHIEnnrlp07JEYC4ImcBjaYCWAdcTcUkcJjwZQkN4bGmyO9cjICH98SdLD/HxqzTHeaYDbAX/Hu9HfaBb5dXLWsjw3Xc6hoVnUUZbMQyfgb0KgxDLh92eNGxJkpZiL0VDNOWCxDWsNpzwhLNkLqCvI6lyxiLaUzvJAk6dPaRhExmCbU1lDO2eR0FdSwC1TEhJOT9eDIK1r2hztZKs2oa5FNFfB/IFHVWasVFC9N2h/r/egB5zsRxC9MqBLRBq95NBxaRSFng6ML5WZSw41Qi4C/JWVm89rdj2WqScDHYyAdwyyppWU4T5c9Fmw== example@example.com", - "fingerprint": "SHA256:7a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8g9h0i1j2k3l4m5n6o7p8q9r0s1", - "created_at": "2024-10-01T12:30:00Z", - "user_id": "a47ac10b-58cc-4372-a567-0e02b2c3d479", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/ssh-keys/1acbb1a5-e864-4b8e-a3f9-b1ed462afd25" - } - } - }, - { - "id": "2bcbb1a5-e864-4b8e-a3f9-b1ed462afd26", - "label": "backup", - "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFf2T1I1d8T1B9Q1b8pS6m2xvY3i5q8sNnU5oQwY5vS9 example@example.com", - "fingerprint": "SHA256:9b8c7d6e5f4a3b2c1d0e9f8a7b6c5d4e3f2a1b0c9d8e7f6a5b4c3d2e1f0a9b8", - "created_at": "2024-10-02T09:15:00Z", - "user_id": "b58bd21c-69dd-5483-b678-1f13c3d4e580", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/ssh-keys/2bcbb1a5-e864-4b8e-a3f9-b1ed462afd26" - } - } - } - ] - } - } - } - } - } - } - }, - "SSH_Key_Service_API_SshKey": { - "description": "OK", - "content": { - "application/hal+json": { - "schema": { - "allOf": [ - { - "type": "object", - "required": [ - "id", - "label", - "public_key", - "fingerprint", - "created_at", - "user_id" - ], - "description": "Details an SSH key.", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the SSH key.", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "label": { - "type": "string", - "description": "The human-readable key label." - }, - "public_key": { - "type": "string", - "description": "The public key.", - "minLength": 64 - }, - "fingerprint": { - "type": "string", - "description": "The public key fingerprint.", - "pattern": "^[A-Za-z0-9:+/=.-]+$" - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "The key creation date." - }, - "user_id": { - "type": "string", - "description": "The unique identifier of the user who owns this SSH key.", - "pattern": "^[a-zA-Z0-9-]+$" - } - } - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "example": { - "id": "1acbb1a5-e864-4b8e-a3f9-b1ed462afd25", - "label": "primary", - "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQChwPHzTTDKDpSbpa2+d22LcbQmsw92eLsUK3Fmei1fiGDkd34NsYCN8m7lsi3NbvdMS83CtPQPWiCveYPzFs1/hHc4PYj8opD2CNnr5iWVVbyaulCYHCgVv4aB/ojcexg8q483A4xJeF15TiCr/gu34rK6ucTvC/tn/rCwJBudczvEwt0klqYwv8Cl/ytaQboSuem5KgSjO3lMrb6CWtfSNhE43ZOw+UBFBqxIninN868vGMkIv9VY34Pwj54rPn/ItQd6Ef4B0KHHaGmzK0vfP+AK7FxNMoHnj3iYT33KZNqtDozdn5tYyH/bThPebEtgqUn+/w5l6wZIC/8zzvls/127ngHk+jNa0PlNyS2TxhPUK4NaPHIEnnrlp07JEYC4ImcBjaYCWAdcTcUkcJjwZQkN4bGmyO9cjICH98SdLD/HxqzTHeaYDbAX/Hu9HfaBb5dXLWsjw3Xc6hoVnUUZbMQyfgb0KgxDLh92eNGxJkpZiL0VDNOWCxDWsNpzwhLNkLqCvI6lyxiLaUzvJAk6dPaRhExmCbU1lDO2eR0FdSwC1TEhJOT9eDIK1r2hztZKs2oa5FNFfB/IFHVWasVFC9N2h/r/egB5zsRxC9MqBLRBq95NBxaRSFng6ML5WZSw41Qi4C/JWVm89rdj2WqScDHYyAdwyyppWU4T5c9Fmw== example@example.com", - "fingerprint": "SHA256:7a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8g9h0i1j2k3l4m5n6o7p8q9r0s1", - "created_at": "2024-10-01T12:30:00Z", - "user_id": "a47ac10b-58cc-4372-a567-0e02b2c3d479", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/ssh-keys/1acbb1a5-e864-4b8e-a3f9-b1ed462afd25" - } - } - } - } - }, - "links": { - "self": { - "operationId": "findSshKeyBySshKeyId", - "parameters": { - "sshKeyId": "$request.path.sshKeyId" - } - } - } - }, - "SSH_Key_Service_API_UnauthorizedError": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "required": [ - "error", - "message" - ], - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "string", - "description": "The long description for the returned error." - } - } - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "unauthorized", - "message": "You do not have permission to access this resource." - } - } - } - }, - "SSH_Key_Service_API_ForbiddenError": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "required": [ - "error", - "message" - ], - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "string", - "description": "The long description for the returned error." - } - } - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "forbidden", - "message": "You do not have permission to perform this action." - } - } - } - }, - "SSH_Key_Service_API_NotFoundError": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "required": [ - "error", - "message" - ], - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "string", - "description": "The long description for the returned error." - } - } - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "not_found", - "message": "The resource you are trying to access does not exist, or you do not have access to it." - } - } - } - }, - "SSH_Key_Service_API_ValidationError": { - "description": "Bad Request - Validation Error", - "content": { - "application/json": { - "schema": { - "type": "object", - "required": [ - "error", - "message" - ], - "description": "A validation error.", - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "object", - "description": "The validation error message keyed by its field or group name.", - "additionalProperties": { - "type": "string" - } - } - } - }, - "example": { - "error": "validation_failed", - "message": { - "field_name": "This field is required." - } - } - } - } - }, - "SSH_Key_Service_API_InvalidOperationError": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "required": [ - "error", - "message" - ], - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "string", - "description": "The long description for the returned error." - } - } - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "conflict", - "message": "The requested operation is invalid or cannot be completed." - } - } - } - }, - "SSH_Key_Service_API_InternalServerError": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "required": [ - "error", - "message" - ], - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "string", - "description": "The long description for the returned error." - } - } - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "example": { - "error": "system", - "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - } - } - } - }, - "requestBodies": { - "Failover_Service_API_CreateFailoverGroupRequest": { - "description": "Create failover group request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the failover group.", - "example": "Primary Failover Group" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - }, - "examples": { - "create": { - "summary": "Creates a new failover group", - "description": "Creates a new failover group with the specified name", - "value": { - "name": "Primary Failover Group" - } - } - } - } - } - }, - "Failover_Service_API_SaveMultiRegionFailoverRequest": { - "description": "Multi-region failover enable request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "region": { - "type": "string", - "description": "The region to enable multi-region failover for.", - "example": "us-east-1" - } - }, - "required": [ - "region" - ], - "additionalProperties": false, - "minProperties": 1 - }, - "examples": { - "enable": { - "summary": "Enables multi-region failover for a region", - "description": "Enables multi-region failover for the specified region", - "value": { - "region": "us-east-1" - } - } - } - } - } - }, - "Codebase_Service_API_CreateCodebaseRequest": { - "description": "Codebase creation request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "codebase_id": { - "type": "string", - "format": "uuid", - "description": "Client-supplied UUID for the new codebase" - }, - "label": { - "type": "string", - "description": "Human-readable label for the codebase" - }, - "region": { - "type": "string", - "description": "AWS region where the codebase will be created" - } - }, - "required": [ - "codebase_id", - "label", - "region" - ], - "additionalProperties": false - }, - "examples": { - "create": { - "summary": "Create a codebase", - "description": "Creates a new codebase for a subscription", - "value": { - "codebase_id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", - "label": "my-codebase", - "region": "us-east-1" - } - } - } - } - } - }, - "Codebase_Service_API_CreateDomainPatternRequest": { - "description": "Create domain pattern request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "pattern": { - "type": "string", - "maxLength": 455, - "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", - "description": "The domain pattern to apply to all associated sites in this codebase, optionally followed by a single path segment. Both [site-name] and [environment-name] tokens are mandatory. Domain ≤ 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per codebase) are enforced at the service layer.\n" - } - }, - "required": [ - "pattern" - ], - "additionalProperties": false - }, - "examples": { - "create_domain_pattern": { - "summary": "Create a domain pattern", - "value": { - "pattern": "[site-name].[environment-name].acme.com" - } - } - } - } - } - }, - "Codebase_Service_API_UpdateCodebaseRequest": { - "description": "Codebase update request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "label": { - "type": "string", - "description": "Human-readable label for the codebase" - }, - "description": { - "type": "string", - "description": "Description of the codebase" - } - }, - "minProperties": 1, - "additionalProperties": false - }, - "examples": { - "update": { - "summary": "Update a codebase", - "description": "Updates an existing codebase's label and description", - "value": { - "label": "updated-codebase-label", - "description": "Updated codebase description" - } - } - } - } - } - }, - "Codebase_Service_API_UpdateDomainPatternRequest": { - "description": "Update domain pattern request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "pattern": { - "type": "string", - "maxLength": 455, - "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", - "description": "The updated domain pattern to apply to all associated sites in this codebase, optionally followed by a single path segment. Both [site-name] and [environment-name] tokens are mandatory. Domain ≤ 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per codebase) are enforced at the service layer.\n" - } - }, - "required": [ - "pattern" - ], - "additionalProperties": false, - "minProperties": 1 - }, - "examples": { - "update_domain_pattern": { - "summary": "Update a domain pattern", - "value": { - "pattern": "[site-name].[environment-name].acme.com" - } - } - } - } - } - }, - "Tag_API_SaveTagRequest": { - "description": "Tag create/update request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "color": { - "type": "string", - "pattern": "^#((?:[a-f0-9]{3}){1,2})$", - "description": "A color for the specified tag" - } - }, - "additionalProperties": false, - "minProperties": 1 - }, - "examples": { - "save": { - "summary": "Saves a tag", - "description": "Saves a tag with specified color", - "value": { - "color": "#000000" - } - } - } - } - } - }, - "Site_Service_API_DuplicateSiteRequest": { - "description": "Site duplication request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "environment_mapping": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-]+$", - "description": "Environment mapping in the format 'sourceEnvId:targetEnvId'" - }, - "description": "Array of environment mappings. You must provide exactly one environment mapping. Each entry maps a source environment ID to a target environment ID, separated by a colon.\n", - "minItems": 1, - "maxItems": 1, - "example": [ - "0ebce493-9d09-479d-a9a8-138a206fa687:a1b2c3d4-e5f6-7890-abcd-ef1234567890" - ] - }, - "site_name": { - "type": "string", - "description": "Machine name for the duplicated site. Must start with a lowercase letter and contain only lowercase letters and numbers. Maximum 14 characters.\n", - "minLength": 1, - "maxLength": 14, - "pattern": "^[a-z][a-z0-9]*$", - "example": "dupsite" - }, - "site_label": { - "type": "string", - "description": "Human-readable label for the duplicated site. Must only contain letters, numbers, and spaces. Maximum 50 characters.\n", - "minLength": 1, - "maxLength": 50, - "example": "Duplicated Site" - }, - "site_id": { - "type": "string", - "format": "uuid", - "description": "An optional explicit UUID for the new duplicated site. A UUID is generated automatically if omitted.", - "example": "f1a2b3c4-d5e6-7890-abcd-ef1234567890" - }, - "hook_argument": { - "type": "string", - "description": "Optional hook argument to pass to the duplication process.", - "example": "--verbose" - } - }, - "required": [ - "environment_mapping", - "site_name", - "site_label" - ], - "additionalProperties": false - }, - "examples": { - "duplicate_basic": { - "summary": "Duplicate a site with required fields", - "description": "Duplicates a site with a single environment mapping", - "value": { - "environment_mapping": [ - "0ebce493-9d09-479d-a9a8-138a206fa687:a1b2c3d4-e5f6-7890-abcd-ef1234567890" - ], - "site_name": "dupsite", - "site_label": "Duplicated Site" - } - }, - "duplicate_with_options": { - "summary": "Duplicate a site with all options", - "description": "Duplicates a site specifying a custom site ID and hook argument", - "value": { - "environment_mapping": [ - "0ebce493-9d09-479d-a9a8-138a206fa687:a1b2c3d4-e5f6-7890-abcd-ef1234567890" - ], - "site_name": "duphook", - "site_label": "Dup With Hook", - "site_id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", - "hook_argument": "my-hook-arg" - } - } - } - } - } - }, - "Site_Service_API_CreateSiteRequest": { - "description": "Site creation request body", - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", - "minLength": 1, - "maxLength": 14, - "pattern": "^[a-z][a-z0-9]*$", - "example": "mysite" - }, - "label": { - "type": "string", - "description": "The human-readable label for the site.", - "minLength": 1, - "maxLength": 50, - "example": "My Site" - }, - "codebase_id": { - "type": "string", - "description": "The unique identifier of the codebase to associate with this site.", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "a9b8c7d6-e5f4-3210-abcd-ef9876543210" - }, - "site_id": { - "type": "string", - "format": "uuid", - "description": "An optional explicit UUID for the new site. A UUID is generated automatically if omitted.", - "example": "0ebce493-9d09-479d-a9a8-138a206fa687" - }, - "description": { - "type": "string", - "description": "An optional description for the site.", - "maxLength": 512, - "example": "A production site for the marketing team." - } - }, - "required": [ - "name", - "label", - "codebase_id" - ], - "additionalProperties": false - }, - "examples": { - "create_site_full": { - "summary": "Create a new site with all fields", - "value": { - "name": "mysite", - "label": "My Site", - "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", - "site_id": "0ebce493-9d09-479d-a9a8-138a206fa687", - "description": "This is a description of my site." - } - }, - "create_site_minimal": { - "summary": "Create a new site with required fields only", - "value": { - "name": "newsitename", - "label": "New Site Label", - "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210" - } - } - } - } - } - }, - "Site_Service_API_UpdateSiteRequest": { - "description": "Site update request body", - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "label": { - "type": "string", - "description": "The new human-readable label for the site.", - "minLength": 1, - "maxLength": 50, - "example": "My Updated Site" - }, - "description": { - "type": "string", - "description": "The new description for the site.", - "maxLength": 512, - "example": "Updated description for this site." - } - }, - "additionalProperties": false, - "minProperties": 1 - }, - "examples": { - "update_label": { - "summary": "Update site label", - "value": { - "label": "My Updated Site" - } - }, - "update_description": { - "summary": "Update site description", - "value": { - "description": "Updated description for this site." - } - }, - "update_both": { - "summary": "Update label and description", - "value": { - "label": "My Updated Site", - "description": "Updated description for this site." - } - } - } - } - } - }, - "CDN_API_ProvisionCdnForDomainRequest": { - "description": "Domain CDN provisioning request body", - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "environment_id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "The environment identifier that the domain will be associated with for purging purposes." - } - }, - "additionalProperties": false, - "required": [ - "environment_id" - ], - "minProperties": 1 - }, - "example": { - "environment_id": "0c3f0f5f-5727-4838-9459-2d90ee1cf7c1" - } - } - } - }, - "CDN_API_CreatePurgeRequest": { - "description": "Purge request body", - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "resource_type": { - "type": "string", - "description": "The type of resource to purge.", - "enum": [ - "tags", - "urls", - "domains", - "everything" - ] - }, - "values": { - "type": "array", - "description": "List of values to purge based on the resource type.\nRequired when `resource_type` is not `everything`.\n", - "items": { - "type": "string" - }, - "minItems": 1 - } - }, - "additionalProperties": false, - "required": [ - "resource_type" - ], - "minProperties": 1 - }, - "examples": { - "purge_urls": { - "summary": "Purge specific URLs", - "value": { - "resource_type": "urls", - "values": [ - "https://example.com/page1", - "https://example.com/page2" - ] - } - }, - "purge_tags": { - "summary": "Purge by cache tags", - "value": { - "resource_type": "tags", - "values": [ - "product-123", - "category-456" - ] - } - }, - "purge_domains": { - "summary": "Purge entire domains", - "value": { - "resource_type": "domains", - "values": [ - "example.com", - "test.example.org" - ] - } - }, - "purge_everything": { - "summary": "Purge everything", - "value": { - "resource_type": "everything" - } - } - } - } - } - }, - "Environment_Service_API_StartDeploymentRequest": { - "description": "Deployment start request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "run_hooks": { - "type": "boolean", - "description": "Whether to run deployment hooks." - }, - "code_reference": { - "type": "string", - "description": "The code reference (branch or tag) to deploy." - }, - "hooks_argument": { - "type": "string", - "description": "Additional arguments passed to deployment hooks." - } - }, - "required": [ - "run_hooks", - "code_reference" - ], - "additionalProperties": false, - "minProperties": 1 - }, - "examples": { - "start_deployment": { - "summary": "Start a deployment", - "description": "Starts a deployment for the specified environment.", - "value": { - "run_hooks": true, - "code_reference": "release-2025-01-15", - "hooks_argument": "--migrate --clear-cache" - } - } - } - } - } - }, - "Environment_Service_API_UpdateCodeDeployRequest": { - "description": "Code deploy concurrency update request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "concurrency": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "description": "Maximum number of concurrent code deploys allowed for the environment." - } - }, - "required": [ - "concurrency" - ], - "additionalProperties": false, - "minProperties": 1 - }, - "examples": { - "update_concurrency": { - "summary": "Update code deploy concurrency", - "description": "Sets the maximum concurrent code deploys for the environment.", - "value": { - "concurrency": 10 - } - } - } - } - } - }, - "Environment_Service_API_ReorderSiteInstancesRequest": { - "description": "Site instances reorder request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "site_instance_ids": { - "type": "array", - "description": "List of site instance IDs in the desired priority order.", - "items": { - "type": "string", - "description": "Site instance identifier in the format {siteId}.{environmentId} (dot-separated site and environment UUIDs)." - } - } - }, - "required": [ - "site_instance_ids" - ], - "additionalProperties": false, - "minProperties": 1 - }, - "examples": { - "reorder": { - "summary": "Reorder site instances", - "description": "Provides the desired order of site instance IDs for the environment.", - "value": { - "site_instance_ids": [ - "3e8ecbec-ea7c-4260-8414-ef2938c859bc.a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3", - "b1d8e2f8-67c7-5d1e-cbe1-1f7604f77de4.c2e9f3a9-78d8-6e2f-dcf2-2a8715a88ef5", - "d3fa04ba-89e9-4f3a-edf3-3b9826b99fa6.e4ab15cb-90fa-4a4b-fea4-4c0937c00ab7" - ] - } - } - } - } - } - }, - "Environment_Service_API_UpdateEnvironmentRequest": { - "description": "Update environment request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "label": { - "type": "string", - "minLength": 1, - "maxLength": 128, - "description": "Human-readable label for the environment." - }, - "description": { - "type": "string", - "minLength": 1, - "maxLength": 512, - "description": "Description for the environment." - }, - "properties": { - "type": "object", - "description": "PHP and server configuration properties for the environment.", - "properties": { - "version": { - "type": "string", - "description": "PHP version (e.g. \"8.3\")." - }, - "apcu": { - "type": "integer", - "description": "APCu memory limit in MB." - }, - "max_execution_time": { - "type": "integer", - "description": "PHP max execution time in seconds." - }, - "memory_limit": { - "type": "integer", - "description": "PHP memory limit in MB." - }, - "opcache": { - "type": "integer", - "description": "OPcache memory limit in MB." - }, - "interned_strings_buffer": { - "type": "integer", - "description": "OPcache interned strings buffer in MB." - }, - "client_max_body_size": { - "type": "integer", - "description": "Nginx client_max_body_size in MB." - }, - "upload_max_filesize": { - "type": "integer", - "description": "PHP upload_max_filesize in MB." - }, - "max_post_size": { - "type": "integer", - "description": "PHP post_max_size in MB." - }, - "max_input_vars": { - "type": "integer", - "description": "PHP max_input_vars." - }, - "memcached_limit": { - "type": "integer", - "description": "Memcached memory limit in MB." - }, - "operating_system": { - "type": "string", - "description": "Operating system (e.g. \"focal\")." - }, - "sendmail_path": { - "type": "string", - "description": "Sendmail path configuration." - } - } - } - }, - "additionalProperties": false, - "minProperties": 1 - }, - "examples": { - "update_label": { - "summary": "Update environment label", - "value": { - "label": "Staging", - "description": "Staging environment" - } - }, - "update_properties": { - "summary": "Update PHP properties", - "value": { - "properties": { - "version": "8.3", - "memory_limit": 256 - } - } - } - } - } - } - }, - "Environment_Service_API_ClearCachesRequest": { - "description": "Clear caches request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "domains": { - "type": "array", - "description": "List of domain names to clear caches for.", - "minItems": 1, - "items": { - "type": "string", - "description": "A domain name." - } - } - }, - "required": [ - "domains" - ], - "additionalProperties": false - }, - "examples": { - "clear_caches": { - "summary": "Clear caches for specific domains", - "value": { - "domains": [ - "example.com", - "www.example.com" - ] - } - } - } - } - } - }, - "Environment_Service_API_CreateSiteInstanceRequest": { - "description": "Create site instance request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "site_id": { - "type": "string", - "description": "The UUID of the site to associate with this environment." - }, - "source_environment_id": { - "type": "string", - "description": "The UUID of the environment to copy files and database from during creation." - }, - "source_site_id": { - "type": "string", - "description": "The UUID of the source site to copy files from during creation." - }, - "hook_arguments": { - "type": "string", - "description": "Additional arguments to pass to deployment hooks during creation." - } - }, - "required": [ - "site_id" - ], - "additionalProperties": false - }, - "examples": { - "create": { - "summary": "Associate a site with an environment", - "value": { - "site_id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc" - } - } - } - } - } - }, - "Environment_Service_API_CopySiteInstanceFilesRequest": { - "description": "Copy site instance files request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "source_environment_id": { - "type": "string", - "description": "The UUID of the environment to copy files from." - } - }, - "required": [ - "source_environment_id" - ], - "additionalProperties": false - }, - "examples": { - "copy_files": { - "summary": "Copy files from another environment", - "value": { - "source_environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323" - } - } - } - } - } - }, - "Environment_Service_API_CopySiteInstanceDatabaseRequest": { - "description": "Copy site instance database request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "source_environment_id": { - "type": "string", - "description": "The UUID of the environment to copy the database from." - } - }, - "required": [ - "source_environment_id" - ], - "additionalProperties": false - }, - "examples": { - "copy_database": { - "summary": "Copy database from another environment", - "value": { - "source_environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323" - } - } - } - } - } - }, - "Environment_Service_API_AssociatePrivateNetworkRequest": { - "description": "Associate private network request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "private_network_id": { - "type": "string", - "description": "The identifier of the private network to associate with this environment." - } - }, - "required": [ - "private_network_id" - ], - "additionalProperties": false, - "minProperties": 1 - }, - "examples": { - "associate": { - "summary": "Associate a private network", - "value": { - "private_network_id": "pn-a1b2c3d4-e5f6-7890-abcd-ef1234567890" - } - } - } - } - } - }, - "Environment_Service_API_UpdateTrustedProxiesRequest": { - "description": "Update trusted proxies request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "cidrs_ipv4": { - "type": "array", - "description": "List of trusted IPv4 CIDR blocks.", - "items": { - "type": "string", - "description": "An IPv4 CIDR block (e.g. \"203.0.113.0/24\")." - } - }, - "cidrs_ipv6": { - "type": "array", - "description": "List of trusted IPv6 CIDR blocks.", - "items": { - "type": "string", - "description": "An IPv6 CIDR block (e.g. \"2001:db8::/32\")." - } - }, - "associated_cdns": { - "type": "array", - "description": "List of CDN names to associate with this environment.", - "items": { - "type": "string", - "enum": [ - "akamai", - "cloudflare", - "fastly" - ] - } - } - }, - "additionalProperties": false, - "minProperties": 1 - }, - "examples": { - "update": { - "summary": "Update trusted proxy configuration", - "value": { - "cidrs_ipv4": [ - "203.0.113.0/24" - ], - "cidrs_ipv6": [], - "associated_cdns": [ - "cloudflare" - ] - } - } - } - } - } - }, - "Environment_Service_API_CreateDomainPatternRequest": { - "description": "Create domain pattern request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "pattern": { - "type": "string", - "maxLength": 455, - "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", - "description": "The domain pattern to apply to all associated sites in this environment, optionally followed by a single path segment. The [site-name] token is mandatory; [environment-name] is optional. Domain ≤ 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per environment) are enforced at the service layer.\n", - "example": "[site-name].acme.com" - } - }, - "required": [ - "pattern" - ], - "additionalProperties": false - }, - "examples": { - "create_domain_pattern": { - "summary": "Create a domain pattern", - "value": { - "pattern": "[site-name].acme.com" - } - } - } - } - } - }, - "Environment_Service_API_UpdateDomainPatternRequest": { - "description": "Update domain pattern request body", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "pattern": { - "type": "string", - "maxLength": 455, - "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", - "description": "The updated domain pattern to apply to all associated sites in this environment, optionally followed by a single path segment. The [site-name] token is mandatory. Domain ≤ 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per environment) are enforced at the service layer.\n" - } - }, - "required": [ - "pattern" - ], - "additionalProperties": false, - "minProperties": 1 - }, - "examples": { - "update_domain_pattern": { - "summary": "Update a domain pattern", - "value": { - "pattern": "[site-name].staging.acme.com" - } - } - } - } - } - }, - "Federated_Authentication_API_CreateSsoDomain": { - "description": "Request body for creating a new domain.", - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "domain": { - "type": "string", - "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", - "description": "The domain name to create (e.g., \"acme.com\")." - } - }, - "required": [ - "domain" - ], - "additionalProperties": false - }, - "example": { - "domain": "acme.com" - } - } - } - }, - "Federated_Authentication_API_CreateIdentityProvider": { - "description": "Request body for creating a new Identity Provider.", - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "idp_entity_id": { - "type": "string", - "format": "uri", - "description": "The Identity Provider Entity ID." - }, - "label": { - "type": "string", - "description": "The name of the Identity Provider." - }, - "sso_url": { - "type": "string", - "format": "uri", - "description": "The SSO URL for this IdP." - }, - "certificate": { - "type": "string", - "description": "The certificate for this IdP." - } - }, - "required": [ - "label", - "idp_entity_id", - "sso_url", - "certificate" - ], - "additionalProperties": false - }, - "example": { - "label": "Acme Corporation Azure AD", - "idp_entity_id": "https://idp.acme.com/saml", - "sso_url": "https://acme.com/sso", - "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----" - } - } - } - }, - "Federated_Authentication_API_UpdateIdentityProvider": { - "description": "Request body for updating an existing Identity Provider.", - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "label": { - "type": "string", - "description": "The name of the Identity Provider." - }, - "certificate": { - "type": "string", - "description": "The X.509 certificate used for SAML authentication." - }, - "sso_url": { - "type": "string", - "format": "uri", - "description": "The Single Sign-On URL for the Identity Provider." - }, - "idp_entity_id": { - "type": "string", - "format": "uri", - "description": "The Identity Provider Entity ID." - } - }, - "additionalProperties": false, - "minProperties": 1 - }, - "example": { - "label": "Updated Acme Corporation Azure AD", - "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", - "sso_url": "https://updatedacme.com/sso", - "idp_entity_id": "https://idp2.acme.com/saml" - } - } - } - }, - "Federated_Authentication_API_CreateSsoPolicy": { - "description": "Request body for creating an SSO policy for an Identity Provider.", - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "domain_ids": { - "type": "array", - "description": "List of verified domain IDs to enforce this Identity Provider for.", - "items": { - "type": "string", - "description": "Reference to a verified SSO domain." - } - } - }, - "required": [ - "domain_ids" - ], - "additionalProperties": false - }, - "example": { - "domain_ids": [ - "dom-456", - "dom-789" - ] - } - } - } - }, - "Federated_Authentication_API_UpdateSsoPolicy": { - "description": "Request body for updating an SSO policy for an Identity Provider.", - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "domain_ids": { - "type": "array", - "description": "List of verified domain IDs to enforce this Identity Provider for.", - "items": { - "type": "string", - "description": "Reference to a verified SSO domain." - } - } - }, - "required": [ - "domain_ids" - ], - "additionalProperties": false, - "minProperties": 1 - }, - "example": { - "domain_ids": [ - "dom-456" - ] - } - } - } - }, - "Federated_Authentication_API_UpdateSsoPolicyRequest": { - "description": "Request body for updating an SSO policy for an Identity Provider.", - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "domain_ids": { - "type": "array", - "description": "List of verified domain IDs to enforce this Identity Provider for.", - "items": { - "type": "string", - "description": "Reference to a verified SSO domain." - } - } - }, - "required": [ - "domain_ids" - ], - "additionalProperties": false, - "minProperties": 1 - }, - "example": { - "domain_ids": [ - "dom-456" - ] - } - } - } - }, - "Federated_Authentication_API_CreateSsoPolicyRequest": { - "description": "Request body for creating an SSO policy for an Identity Provider.", - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "domain_ids": { - "type": "array", - "description": "List of verified domain IDs to enforce this Identity Provider for.", - "items": { - "type": "string", - "description": "Reference to a verified SSO domain." - } - } - }, - "required": [ - "domain_ids" - ], - "additionalProperties": false - }, - "example": { - "domain_ids": [ - "dom-456", - "dom-789" - ] - } - } - } - }, - "SSH_Key_Service_API_SshKeyRequestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "required": [ - "label", - "public_key" - ], - "description": "Describes the request body for an SSH key.", - "properties": { - "label": { - "type": "string", - "description": "The SSH key label." - }, - "public_key": { - "type": "string", - "description": "The public key." - } - }, - "additionalProperties": false, - "minProperties": 1 - }, - "example": { - "label": "mykey", - "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQChwPHzTTDKDpSbpa2+d22LcbQmsw92eLsUK3Fmei1fiGDkd34NsYCN8m7lsi3NbvdMS83CtPQPWiCveYPzFs1/hHc4PYj8opD2CNnr5iWVVbyaulCYHCgVv4aB/ojcexg8q483A4xJeF15TiCr/gu34rK6ucTvC/tn/rCwJBudczvEwt0klqYwv8Cl/ytaQboSuem5KgSjO3lMrb6CWtfSNhE43ZOw+UBFBqxIninN868vGMkIv9VY34Pwj54rPn/ItQd6Ef4B0KHHaGmzK0vfP+AK7FxNMoHnj3iYT33KZNqtDozdn5tYyH/bThPebEtgqUn+/w5l6wZIC/8zzvls/127ngHk+jNa0PlNyS2TxhPUK4NaPHIEnnrlp07JEYC4ImcBjaYCWAdcTcUkcJjwZQkN4bGmyO9cjICH98SdLD/HxqzTHeaYDbAX/Hu9HfaBb5dXLWsjw3Xc6hoVnUUZbMQyfgb0KgxDLh92eNGxJkpZiL0VDNOWCxDWsNpzwhLNkLqCvI6lyxiLaUzvJAk6dPaRhExmCbU1lDO2eR0FdSwC1TEhJOT9eDIK1r2hztZKs2oa5FNFfB/IFHVWasVFC9N2h/r/egB5zsRxC9MqBLRBq95NBxaRSFng6ML5WZSw41Qi4C/JWVm89rdj2WqScDHYyAdwyyppWU4T5c9Fmw== example@example.com" - } - } - } - } - }, - "schemas": { - "Failover_Service_API_FailoverGroup": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for the failover group.", - "example": "b2c3d4e5-f6a7-8901-bcde-f12345678901" - }, - "name": { - "type": "string", - "description": "The name of the failover group.", - "example": "Primary Failover Group" - }, - "status": { - "type": "string", - "enum": [ - "creating", - "normal", - "failed-over", - "failing-over", - "error", - "deleting", - "deleted" - ], - "description": "The current status of the failover group.", - "example": "normal" - }, - "pairs": { - "type": "array", - "description": "The list of failover pairs belonging to this failover group.", - "items": { - "type": "object", - "properties": { - "service_name": { - "type": "string", - "description": "The name of the service for this failover pair.", - "example": "my-application-service" - }, - "primary_id": { - "type": "string", - "description": "The ID of the primary resource in the failover pair.", - "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" - }, - "failover_id": { - "type": "string", - "description": "The UUID of the failover resource in the failover pair.", - "example": "f1e2d3c4-b5a6-7890-fedc-ba9876543210" - } - }, - "required": [ - "service_name", - "primary_id", - "failover_id" - ] - } - } - }, - "required": [ - "id", - "name", - "status", - "pairs" - ] - }, - "Failover_Service_API_FailoverPair": { - "type": "object", - "properties": { - "service_name": { - "type": "string", - "description": "The name of the service for this failover pair.", - "example": "my-application-service" - }, - "primary_id": { - "type": "string", - "description": "The ID of the primary resource in the failover pair.", - "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" - }, - "failover_id": { - "type": "string", - "description": "The UUID of the failover resource in the failover pair.", - "example": "f1e2d3c4-b5a6-7890-fedc-ba9876543210" - } - }, - "required": [ - "service_name", - "primary_id", - "failover_id" - ] - }, - "Failover_Service_API_MultiRegionFailoverStatus": { - "type": "object", - "properties": { - "is_enabled": { - "type": "boolean", - "description": "Whether multi-region failover is enabled for the environment." - }, - "failover_group_id": { - "type": "string", - "description": "The identifier of the failover group associated with the environment." - }, - "is_traffic_failed_over": { - "type": "boolean", - "description": "Whether traffic has been failed over to the secondary region." - } - }, - "required": [ - "is_enabled" - ] - }, - "Failover_Service_API_HalLink": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "Failover_Service_API_HalItem": { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - "Failover_Service_API_HalCollection": { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "Failover_Service_API_PaginatedCollection": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - "Failover_Service_API_FilteredCollection": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - "Failover_Service_API_ValidationError": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "Failover_Service_API_Error": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - "Failover_Service_API_UnauthorizedError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "Failover_Service_API_ForbiddenError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "Failover_Service_API_InternalServerError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "Failover_Service_API_Message": { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - "Failover_Service_API_InvalidOperationError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "Failover_Service_API_NotFoundError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "Codebase_Service_API_Codebase": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for the codebase" - }, - "label": { - "type": "string", - "description": "Human-readable label for the codebase" - }, - "region": { - "type": "string", - "description": "AWS region of the codebase" - }, - "vcs_url": { - "type": "string", - "format": "uri", - "description": "VCS repository URL" - }, - "repository_id": { - "type": "string", - "description": "VCS repository identifier" - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "Creation timestamp" - }, - "updated_at": { - "type": "string", - "format": "date-time", - "description": "Last update timestamp" - }, - "description": { - "type": "string", - "description": "Description of the codebase" - }, - "flags": { - "type": "object", - "properties": { - "is_active": { - "type": "boolean", - "description": "Whether the codebase is active" - }, - "is_meo": { - "type": "boolean", - "description": "Whether the codebase is MEO" - } - }, - "required": [ - "is_active", - "is_meo" - ], - "description": "Feature flags for the codebase" - }, - "hash": { - "type": "string", - "description": "Codebase hash" - }, - "applications_total": { - "type": "integer", - "description": "Total number of applications linked to this codebase" - } - }, - "required": [ - "id", - "label", - "region", - "vcs_url", - "repository_id", - "created_at", - "updated_at", - "flags", - "hash", - "applications_total" - ] - }, - "Codebase_Service_API_CodebaseReference": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for the reference" - }, - "name": { - "type": "string", - "description": "Name of the git reference" - }, - "type": { - "type": "string", - "enum": [ - "branch", - "tag" - ], - "description": "Type of the git reference" - } - }, - "required": [ - "id", - "name", - "type" - ] - }, - "Codebase_Service_API_DomainPattern": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Unique identifier for the domain pattern." - }, - "pattern": { - "type": "string", - "maxLength": 455, - "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", - "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].[environment-name].acme.com/app). Both [site-name] and [environment-name] tokens are mandatory at codebase level. Domain rules (enforced in service layer): ≤ 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] ≤ 14 chars, [environment-name] ≤ 10 chars). One pattern per codebase.\n", - "example": "[site-name].[environment-name].acme.com" - } - }, - "required": [ - "id", - "pattern" - ] - }, - "Codebase_Service_API_HalLink": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "Codebase_Service_API_HalItem": { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - "Codebase_Service_API_HalCollection": { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "Codebase_Service_API_PaginatedCollection": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - "Codebase_Service_API_FilteredCollection": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - "Codebase_Service_API_ValidationError": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "Codebase_Service_API_Error": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - "Codebase_Service_API_UnauthorizedError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "Codebase_Service_API_ForbiddenError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "Codebase_Service_API_InternalServerError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "Codebase_Service_API_NotFoundError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "Codebase_Service_API_Message": { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - "Codebase_Service_API_InvalidOperationError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "Codebase_Service_API_SortedCollection": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - "Tag_API_Tag": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "minLength": 1, - "maxLength": 255, - "description": "The name of the tag" - }, - "color": { - "type": "string", - "pattern": "^#((?:[a-f0-9]{3}){1,2})$", - "minLength": 4, - "maxLength": 7, - "description": "The color of the tag" - } - }, - "required": [ - "name", - "color" - ] - }, - "Tag_API_HalLink": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "Tag_API_HalItem": { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - "Tag_API_HalCollection": { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "Tag_API_PaginatedCollection": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - "Tag_API_FilteredCollection": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - "Tag_API_SortedCollection": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - "Tag_API_Error": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - "Tag_API_UnauthorizedError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "Tag_API_ForbiddenError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "Tag_API_NotFoundError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "Tag_API_InternalServerError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "Tag_API_Message": { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - "Tag_API_ValidationError": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "Tag_API_InvalidOperationError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "Site_Service_API_Site": { - "type": "object", - "description": "A Site resource", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the site", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "12345678-1234-1234-1234-123456789012" - }, - "name": { - "type": "string", - "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", - "minLength": 1, - "maxLength": 14, - "pattern": "^[a-z][a-z0-9]*$", - "example": "mysite" - }, - "label": { - "type": "string", - "description": "The human-readable label of the site", - "minLength": 1, - "maxLength": 50, - "example": "My Site 1" - }, - "description": { - "type": "string", - "description": "A description of the site", - "maxLength": 512, - "example": "A production site for the marketing team." - }, - "codebase_id": { - "type": "string", - "description": "The unique identifier of the codebase this site belongs to", - "pattern": "^[a-zA-Z0-9-]+$", - "example": "550e8400-e29b-41d4-a716-446655441210" - }, - "status": { - "type": "string", - "description": "The current lifecycle status of the site. ready indicates the site is active and operational. marked-for-deletion indicates the site has been scheduled for deletion and can still be recovered.\n", - "enum": [ - "ready", - "marked-for-deletion" - ], - "example": "ready" - }, - "delete_at": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime indicating when the site is scheduled for deletion. Only present when status is marked-for-deletion.", - "example": "2025-06-15T00:00:00Z" - } - }, - "required": [ - "id", - "name", - "label", - "codebase_id", - "status" - ] - }, - "Site_Service_API_HalLink": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "Site_Service_API_HalItem": { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - "Site_Service_API_HalCollection": { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "Site_Service_API_PaginatedCollection": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - "Site_Service_API_FilteredCollection": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - "Site_Service_API_SortedCollection": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - "Site_Service_API_ValidationError": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "Site_Service_API_Error": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - "Site_Service_API_UnauthorizedError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "Site_Service_API_ForbiddenError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "Site_Service_API_InternalServerError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "Site_Service_API_Message": { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - "Site_Service_API_NotFoundError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "Site_Service_API_InvalidOperationError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "CDN_API_Domain": { - "type": "object", - "description": "CDN domain resource.", - "properties": { - "domain": { - "type": "string", - "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?(\\.[a-zA-Z]{2,})+$", - "description": "The fully qualified domain name." - }, - "subscription_uuid": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "The unique identifier of the subscription the domain belongs to." - }, - "environment_id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "The environment identifier associated with the domain." - }, - "application_name": { - "type": "string", - "description": "The name of the application associated with the domain." - }, - "status": { - "type": "string", - "description": "The current status of the domain.", - "enum": [ - "connecting-to-edge", - "domain-validation-pending", - "ready-for-dns-repointing", - "configuration-failed", - "configured" - ] - }, - "ownership_validation_cname": { - "type": "string", - "description": "The CNAME record that must be created on the domain's DNS to validate ownership." - }, - "bandwidth_usage_tb": { - "type": "number", - "format": "float", - "description": "The bandwidth usage for the domain in terabytes." - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "The timestamp when the domain was created." - }, - "updated_at": { - "type": "string", - "format": "date-time", - "description": "The timestamp when the domain was last updated." - } - }, - "required": [ - "domain", - "subscription_uuid", - "environment_id", - "status", - "application_name", - "ownership_validation_cname", - "bandwidth_usage_tb", - "created_at", - "updated_at" - ] - }, - "CDN_API_HalLink": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "CDN_API_HalItem": { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - "CDN_API_HalCollection": { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "CDN_API_PaginatedCollection": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - "CDN_API_FilteredCollection": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - "CDN_API_SortedCollection": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - "CDN_API_Error": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - "CDN_API_UnauthorizedError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "CDN_API_ForbiddenError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "CDN_API_NotFoundError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "CDN_API_InternalServerError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "CDN_API_Message": { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - "CDN_API_ValidationError": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "CDN_API_InvalidOperationError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "Environment_Service_API_SiteInstance": { - "type": "object", - "description": "Site Instance properties", - "properties": { - "site_id": { - "type": "string", - "description": "The unique identifier of the site", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "environment_id": { - "type": "string", - "description": "The unique identifier of the environment", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "status": { - "type": "string", - "description": "The current status of the site instance", - "enum": [ - "active", - "creating", - "create-failed", - "updating", - "update-failed", - "deleting", - "deleted", - "delete-failed" - ] - }, - "health_status": { - "type": "object", - "description": "Health status information for the site instance", - "properties": { - "code": { - "type": "string", - "description": "Health status code" - }, - "summary": { - "type": "string", - "description": "Summary of the health status" - }, - "details": { - "type": "string", - "description": "Detailed health status information" - } - }, - "required": [ - "code", - "summary", - "details" - ] - }, - "domains": { - "type": "array", - "description": "List of domains associated with the site instance", - "items": { - "type": "string" - } - }, - "deployment_order": { - "type": [ - "integer", - "null" - ], - "description": "The order in which this site instance is deployed relative to others.", - "example": 1 - }, - "delete_at": { - "type": [ - "string", - "null" - ], - "format": "date-time", - "description": "The scheduled deletion date-time for this site instance, if set." - }, - "date_marked_for_deletion": { - "type": [ - "string", - "null" - ], - "format": "date-time", - "description": "The date-time when this site instance was marked for deletion." - }, - "protection_mode": { - "type": [ - "object", - "null" - ], - "description": "The current protection mode of the site instance", - "properties": { - "is_enabled": { - "type": "boolean", - "description": "Indicates whether the protection mode is enabled for the site instance" - }, - "is_inherited": { - "type": "boolean", - "description": "Indicates whether the protection mode is inherited from the environment" - } - }, - "required": [ - "is_enabled", - "is_inherited" - ] - } - }, - "required": [ - "site_id", - "environment_id", - "status", - "health_status", - "domains" - ] - }, - "Environment_Service_API_Environment": { - "type": "object", - "description": "Environment properties", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the environment", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "name": { - "type": "string", - "description": "The machine name of the environment" - }, - "label": { - "type": "string", - "description": "The human-readable label of the environment" - }, - "description": { - "type": "string", - "description": "A description of the environment" - }, - "status": { - "type": "string", - "description": "The current status of the environment", - "enum": [ - "normal", - "allocated", - "launching", - "killed", - "cancelled", - "stopped" - ] - }, - "flags": { - "type": "object", - "description": "Environment configuration flags", - "additionalProperties": { - "type": "boolean" - } - }, - "properties": { - "type": "object", - "description": "Environment PHP and server properties", - "properties": { - "version": { - "type": "string", - "description": "PHP version" - }, - "max_execution_time": { - "type": "integer", - "description": "Maximum execution time in seconds" - }, - "memory_limit": { - "type": "integer", - "description": "Memory limit in MB" - }, - "apcu": { - "type": "integer", - "description": "APCu cache size in MB" - }, - "client_max_body_size": { - "type": "integer", - "description": "Maximum client body size in MB" - }, - "max_input_vars": { - "type": "integer", - "description": "Maximum number of input variables" - }, - "max_post_size": { - "type": "integer", - "description": "Maximum POST size in MB" - }, - "memcached_limit": { - "type": "integer", - "description": "Memcached limit in MB" - }, - "upload_max_filesize": { - "type": "integer", - "description": "Maximum upload file size in MB" - }, - "operating_system": { - "type": "string", - "description": "Operating system codename" - } - } - }, - "reference": { - "type": "string", - "description": "The code reference (branch, tag, or commit) deployed to this environment" - }, - "code_switch_status": { - "type": "string", - "description": "The status of the Switch Code action", - "enum": [ - "IDLE", - "IN_PROGRESS" - ] - }, - "ssh_url": { - "type": "string", - "format": "uri", - "description": "The SSH connection string for accessing this environment" - } - }, - "required": [ - "id", - "name", - "label", - "status", - "flags", - "properties", - "reference", - "code_switch_status", - "ssh_url" - ] - }, - "Environment_Service_API_EmbeddedCodebase": { - "type": "object", - "description": "Embedded codebase resource", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the codebase" - } - }, - "required": [ - "id" - ] - }, - "Environment_Service_API_Deployment": { - "type": "object", - "description": "Deployment properties", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Unique identifier for the deployment." - }, - "environment_id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Identifier of the environment this deployment belongs to." - }, - "status": { - "type": "string", - "description": "Current status of the deployment.", - "enum": [ - "waiting", - "received", - "started", - "done", - "failed", - "error", - "killed" - ] - }, - "code_reference": { - "type": "string", - "description": "The code reference (e.g. branch or tag) deployed." - }, - "run_hooks": { - "type": "boolean", - "description": "Whether deployment hooks were run." - }, - "hooks_argument": { - "type": [ - "string", - "null" - ], - "description": "Additional arguments passed to deployment hooks." - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "Timestamp when the deployment was created." - }, - "started_at": { - "type": [ - "string", - "null" - ], - "format": "date-time", - "description": "Timestamp when the deployment started." - }, - "completed_at": { - "type": [ - "string", - "null" - ], - "format": "date-time", - "description": "Timestamp when the deployment completed." - }, - "sender_id": { - "type": [ - "string", - "null" - ], - "description": "Identifier of the user or system that initiated the deployment." - }, - "logs": { - "type": [ - "string", - "null" - ], - "description": "Deployment log output." - } - }, - "required": [ - "id", - "environment_id", - "status", - "code_reference", - "run_hooks", - "created_at" - ] - }, - "Environment_Service_API_CodeDeploy": { - "type": "object", - "properties": { - "concurrency": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "description": "Maximum number of concurrent code deploys allowed for the environment." - } - }, - "required": [ - "concurrency" - ] - }, - "Environment_Service_API_Domain": { - "type": "object", - "description": "Domain properties", - "properties": { - "name": { - "type": "string", - "description": "The domain name." - }, - "is_managed": { - "type": "boolean", - "description": "Whether the domain is managed by Acquia." - } - }, - "required": [ - "name", - "is_managed" - ] - }, - "Environment_Service_API_DomainStatus": { - "type": "object", - "description": "Domain DNS status properties", - "properties": { - "hostname": { - "type": "string", - "description": "The domain name." - }, - "site_id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Identifier of the site this domain belongs to." - }, - "environment_id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Identifier of the environment this domain belongs to." - }, - "ip_addresses": { - "type": "array", - "description": "List of IP addresses resolving for this domain.", - "items": { - "type": "string" - } - }, - "cnames": { - "type": "array", - "description": "List of CNAME records resolving for this domain.", - "items": { - "type": "string" - } - }, - "flags": { - "type": "object", - "description": "Status flags for the domain.", - "properties": { - "default": { - "type": "boolean", - "description": "Whether this is the default domain." - }, - "active": { - "type": "boolean", - "description": "Whether the domain is active." - }, - "dns_resolves": { - "type": "boolean", - "description": "Whether the domain DNS resolves correctly." - }, - "acquia_hosted": { - "type": "boolean", - "description": "Whether the domain is hosted on Acquia infrastructure." - } - }, - "required": [ - "default", - "active", - "dns_resolves", - "acquia_hosted" - ] - } - }, - "required": [ - "hostname", - "site_id", - "environment_id", - "ip_addresses", - "cnames", - "flags" - ] - }, - "Environment_Service_API_Database": { - "type": "object", - "description": "Database properties", - "properties": { - "database_name": { - "type": "string", - "description": "The name of the database." - }, - "database_role": { - "type": "string", - "description": "The role of the database (e.g. the site username)." - } - }, - "required": [ - "database_name", - "database_role" - ] - }, - "Environment_Service_API_DatabaseConnection": { - "type": "object", - "description": "Database connection credential properties", - "properties": { - "db_host": { - "type": "string", - "description": "The database host." - }, - "name": { - "type": "string", - "description": "The database name." - }, - "password": { - "type": "string", - "description": "The database password." - }, - "user_name": { - "type": "string", - "description": "The database username." - }, - "ssh_host": { - "type": "string", - "description": "The SSH host for tunneling to the database." - } - }, - "required": [ - "db_host", - "name", - "password", - "user_name", - "ssh_host" - ] - }, - "Environment_Service_API_DatabaseBackup": { - "type": "object", - "description": "Database backup properties", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Unique identifier for the database backup." - }, - "database_id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Identifier of the database this backup belongs to." - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "Timestamp when the backup was created." - }, - "type": { - "type": "string", - "enum": [ - "DAILY", - "ON_DEMAND" - ], - "description": "The type of backup." - } - }, - "required": [ - "id", - "database_id", - "created_at", - "type" - ] - }, - "Environment_Service_API_EgressIp": { - "type": "object", - "description": "Egress IP properties", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Unique identifier for the egress IP." - }, - "status": { - "type": "string", - "description": "Current status of the egress IP." - }, - "ipv4": { - "type": "string", - "description": "The IPv4 address." - }, - "ipv6": { - "type": [ - "string", - "null" - ], - "description": "The IPv6 address, if assigned." - }, - "flags": { - "type": "object", - "description": "Status flags for the egress IP.", - "additionalProperties": { - "type": "boolean" - } - } - }, - "required": [ - "id", - "status", - "ipv4", - "flags" - ] - }, - "Environment_Service_API_TrustedProxies": { - "type": "object", - "description": "Trusted proxy configuration properties", - "properties": { - "cidrs_ipv4": { - "type": "array", - "description": "List of trusted IPv4 CIDR blocks.", - "items": { - "type": "string" - } - }, - "cidrs_ipv6": { - "type": "array", - "description": "List of trusted IPv6 CIDR blocks.", - "items": { - "type": "string" - } - }, - "associated_cdns": { - "type": "object", - "description": "Map of CDN configurations associated with this environment, keyed by CDN name.", - "additionalProperties": { - "type": "object", - "properties": { - "label": { - "type": "string", - "description": "Display label for the CDN." - }, - "is_enabled": { - "type": "boolean", - "description": "Whether the CDN is enabled." - } - }, - "required": [ - "label", - "is_enabled" - ] - } - } - }, - "required": [ - "cidrs_ipv4", - "cidrs_ipv6", - "associated_cdns" - ] - }, - "Environment_Service_API_PrivateNetwork": { - "type": "object", - "description": "Private network reference properties", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Unique identifier for the private network." - }, - "label": { - "type": [ - "string", - "null" - ], - "description": "Human-readable label for the private network." - } - }, - "required": [ - "id" - ] - }, - "Environment_Service_API_DomainPattern": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-zA-Z0-9-]+$", - "description": "Unique identifier for the domain pattern." - }, - "pattern": { - "type": "string", - "maxLength": 455, - "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", - "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].acme.com/app). The [site-name] token is mandatory; [environment-name] is optional at environment level. Domain rules (enforced in service layer): ≤ 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] ≤ 14 chars). One pattern per environment.\n", - "example": "[site-name].acme.com" - } - }, - "required": [ - "id", - "pattern" - ] - }, - "Environment_Service_API_HalLink": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "Environment_Service_API_HalItem": { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - "Environment_Service_API_HalCollection": { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "Environment_Service_API_PaginatedCollection": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - "Environment_Service_API_FilteredCollection": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - "Environment_Service_API_ValidationError": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "Environment_Service_API_Error": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - "Environment_Service_API_UnauthorizedError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "Environment_Service_API_ForbiddenError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "Environment_Service_API_NotFoundError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "Environment_Service_API_InternalServerError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "Environment_Service_API_Message": { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - "Environment_Service_API_InvalidOperationError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "Environment_Service_API_SortedCollection": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - "Federated_Authentication_API_IdentityProvider": { - "type": "object", - "properties": { - "identity_provider_id": { - "type": "string", - "description": "Unique identifier for the identity provider." - }, - "label": { - "type": "string", - "description": "The name of the Identity Provider." - }, - "subscription_id": { - "type": "string", - "description": "Unique identifier for the subscription that the Identity Provider belongs to." - }, - "idp_entity_id": { - "type": "string", - "format": "uri", - "description": "The Identity Provider Entity ID." - }, - "sp_entity_id": { - "type": "string", - "format": "uri", - "description": "The Service Provider Entity ID." - }, - "sso_url": { - "type": "string", - "format": "uri", - "description": "The Single Sign-On URL for the Identity Provider." - }, - "certificate": { - "type": "string", - "description": "The X.509 certificate used for SAML authentication." - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "Timestamp when the Identity Provider was created." - } - }, - "required": [ - "identity_provider_id", - "label", - "subscription_id", - "idp_entity_id", - "sp_entity_id", - "sso_url", - "certificate", - "created_at" - ] - }, - "Federated_Authentication_API_SsoDomain": { - "type": "object", - "properties": { - "domain_id": { - "type": "string", - "description": "Unique identifier for the domain." - }, - "domain": { - "type": "string", - "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", - "description": "The domain name (e.g., \"acme.com\")." - }, - "subscription_id": { - "type": "string", - "description": "Unique identifier for the subscription that the domain belongs to." - }, - "health": { - "type": "object", - "description": "The overall verification health of the domain. Uses the same code semantics as the platform email domain-verification system: `200` verified, `202` verification pending or in progress, `404` DNS record not found or could not be validated.", - "properties": { - "code": { - "type": "string", - "enum": [ - "200", - "202", - "404" - ], - "description": "Machine-readable verification status code. `200` — verified. `202` — verification pending or in progress; retry after propagation. `404` — DNS TXT record not found or does not match expected value." - }, - "summary": { - "type": "string", - "description": "Short human-readable label for the verification state (e.g., \"Verified\", \"Verification pending\", \"Missing DNS record\")." - }, - "details": { - "type": "string", - "description": "Actionable explanation of the current state. For `404`, describes what was checked and what the customer should do next." - } - }, - "required": [ - "code", - "summary", - "details" - ] - }, - "verification_record": { - "type": "object", - "description": "DNS TXT record the customer must publish to verify domain ownership.", - "properties": { - "type": { - "type": "string", - "const": "TXT", - "description": "DNS record type." - }, - "host": { - "type": "string", - "description": "DNS record host name." - }, - "value": { - "type": "string", - "description": "Expected DNS record value." - }, - "health": { - "type": "object", - "description": "Verification health specific to this DNS record. Anchors the failure reason to the exact record the customer needs to fix, matching the per-record health pattern used in platform email domain verification.", - "properties": { - "code": { - "type": "string", - "enum": [ - "200", - "202", - "404" - ], - "description": "`200` — record found and value matches. `202` — check in progress. `404` — record not found or value does not match." - }, - "summary": { - "type": "string", - "description": "Short human-readable label for this record's verification state." - }, - "details": { - "type": "string", - "description": "Actionable explanation; for `404`, states what was checked and what to fix." - } - }, - "required": [ - "code", - "summary", - "details" - ] - } - }, - "required": [ - "type", - "host", - "value", - "health" - ] - }, - "verified_at": { - "type": "string", - "format": "date-time", - "description": "Timestamp when the domain was successfully verified. Present only when `health.code` is `200`." - } - }, - "required": [ - "domain_id", - "domain", - "subscription_id", - "health", - "verification_record" - ] - }, - "Federated_Authentication_API_SsoPolicy": { - "type": "object", - "description": "SSO policy that enforces an Identity Provider for specific domains.", - "properties": { - "status": { - "type": "string", - "enum": [ - "enabled", - "disabled" - ], - "default": "disabled", - "description": "The status of the SSO policy. When enabled, the policy enforces SSO for the specified domains. Defaults to disabled on creation." - }, - "_embedded": { - "type": "object", - "description": "Embedded resources for the SSO policy.", - "properties": { - "domains": { - "type": "array", - "description": "The SSO domains enforced by this policy, each with a self link back to the authoritative SsoDomain resource.", - "items": { - "allOf": [ - { - "type": "object", - "properties": { - "domain_id": { - "type": "string", - "description": "Unique identifier for the domain." - }, - "domain": { - "type": "string", - "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", - "description": "The domain name (e.g., \"acme.com\")." - }, - "subscription_id": { - "type": "string", - "description": "Unique identifier for the subscription that the domain belongs to." - }, - "health": { - "type": "object", - "description": "The overall verification health of the domain. Uses the same code semantics as the platform email domain-verification system: `200` verified, `202` verification pending or in progress, `404` DNS record not found or could not be validated.", - "properties": { - "code": { - "type": "string", - "enum": [ - "200", - "202", - "404" - ], - "description": "Machine-readable verification status code. `200` — verified. `202` — verification pending or in progress; retry after propagation. `404` — DNS TXT record not found or does not match expected value." - }, - "summary": { - "type": "string", - "description": "Short human-readable label for the verification state (e.g., \"Verified\", \"Verification pending\", \"Missing DNS record\")." - }, - "details": { - "type": "string", - "description": "Actionable explanation of the current state. For `404`, describes what was checked and what the customer should do next." - } - }, - "required": [ - "code", - "summary", - "details" - ] - }, - "verification_record": { - "type": "object", - "description": "DNS TXT record the customer must publish to verify domain ownership.", - "properties": { - "type": { - "type": "string", - "const": "TXT", - "description": "DNS record type." - }, - "host": { - "type": "string", - "description": "DNS record host name." - }, - "value": { - "type": "string", - "description": "Expected DNS record value." - }, - "health": { - "type": "object", - "description": "Verification health specific to this DNS record. Anchors the failure reason to the exact record the customer needs to fix, matching the per-record health pattern used in platform email domain verification.", - "properties": { - "code": { - "type": "string", - "enum": [ - "200", - "202", - "404" - ], - "description": "`200` — record found and value matches. `202` — check in progress. `404` — record not found or value does not match." - }, - "summary": { - "type": "string", - "description": "Short human-readable label for this record's verification state." - }, - "details": { - "type": "string", - "description": "Actionable explanation; for `404`, states what was checked and what to fix." - } - }, - "required": [ - "code", - "summary", - "details" - ] - } - }, - "required": [ - "type", - "host", - "value", - "health" - ] - }, - "verified_at": { - "type": "string", - "format": "date-time", - "description": "Timestamp when the domain was successfully verified. Present only when `health.code` is `200`." - } - }, - "required": [ - "domain_id", - "domain", - "subscription_id", - "health", - "verification_record" - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "domains" - ] - } - }, - "required": [ - "status", - "_embedded" - ] - }, - "Federated_Authentication_API_HalLink": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "Federated_Authentication_API_HalItem": { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - "Federated_Authentication_API_HalCollection": { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "Federated_Authentication_API_PaginatedCollection": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 2 - }, - "_embedded": { - "items": [ - { - "id": "456e4567-e89b-11d3-a789-426614174000", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/456e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "789e4567-e89b-11d3-a789-426614174000", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/789e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=0&limit=2" - }, - "next": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 0 - }, - "_embedded": { - "items": [ - { - "id": "111e4567-e89b-11d3-a789-426614174000", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/111e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "222e4567-e89b-11d3-a789-426614174000", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/222e4567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=4&limit=2" - }, - "prev": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?offset=2&limit=2" - }, - "offset": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?offset}", - "templated": true - }, - "limit": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?limit}", - "templated": true - } - }, - "count": 2, - "total": 6, - "pagination": { - "total": 6, - "limit": 2, - "offset": 4 - }, - "_embedded": { - "items": [ - { - "id": "999e4567-e89b-11d3-a789-426614174000", - "name": "Resource 5", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/999e4567-e89b-11d3-a789-426614174000" - } - } - }, - { - "id": "aaaee567-e89b-11d3-a789-426614174000", - "name": "Resource 6", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/aaaee567-e89b-11d3-a789-426614174000" - } - } - } - ] - } - } - ] - }, - "Federated_Authentication_API_FilteredCollection": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=field=value*;field2=value2*" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/2" - } - } - } - ] - } - }, - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z" - }, - "filter": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?filter}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "3", - "name": "Resource 3", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/3" - } - } - }, - { - "id": "4", - "name": "Resource 4", - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources/4" - } - } - } - ] - } - } - ] - }, - "Federated_Authentication_API_SortedCollection": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - }, - { - "type": "object", - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - } - } - } - ], - "examples": [ - { - "_links": { - "self": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources?sort=name,-created_at" - }, - "sort": { - "href": "https://api-framework-demo-prod.prod.mesh.cicd.acquia.io/api/resources{?sort}", - "templated": true - } - }, - "_embedded": { - "items": [ - { - "id": "1", - "name": "Resource 1", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/1" - } - } - }, - { - "id": "2", - "name": "Resource 2", - "_links": { - "self": { - "href": "https://cloud.acquia.com/api/resources/2" - } - } - } - ] - } - } - ] - }, - "Federated_Authentication_API_ValidationError": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "example": { - "field_name": "This field is required.", - "another_field": "This field must be a valid format." - } - } - }, - "required": [ - "error", - "message" - ] - }, - "Federated_Authentication_API_Error": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - "Federated_Authentication_API_UnauthorizedError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "Federated_Authentication_API_ForbiddenError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "Federated_Authentication_API_NotFoundError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "Federated_Authentication_API_InternalServerError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "Federated_Authentication_API_Message": { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ], - "examples": [ - { - "href": "https://cloud.acquia.com/api/resources/1" - }, - { - "href": "https://cloud.acquia.com/api/resources{?offset}", - "templated": true - } - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "The message content" - } - }, - "required": [ - "message" - ] - } - ] - }, - "Federated_Authentication_API_InvalidOperationError": { - "allOf": [ - { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error", - "message" - ] - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "SSH_Key_Service_API_HalLink": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - }, - "SSH_Key_Service_API_HalItem": { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - "SSH_Key_Service_API_HalCollection": { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "SSH_Key_Service_API_PaginatedCollection": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - }, - { - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - }, - { - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ] - }, - "SSH_Key_Service_API_FilteredCollection": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - }, - { - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering." - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - } - } - } - ] - }, - "SSH_Key_Service_API_SortedCollection": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - }, - { - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting." - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - } - } - } - ] - }, - "SSH_Key_Service_API_SshKey": { - "allOf": [ - { - "type": "object", - "required": [ - "id", - "label", - "public_key", - "fingerprint", - "created_at", - "user_id" - ], - "description": "Details an SSH key.", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the SSH key.", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "label": { - "type": "string", - "description": "The human-readable key label." - }, - "public_key": { - "type": "string", - "description": "The public key.", - "minLength": 64 - }, - "fingerprint": { - "type": "string", - "description": "The public key fingerprint.", - "pattern": "^[A-Za-z0-9:+/=.-]+$" - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "The key creation date." - }, - "user_id": { - "type": "string", - "description": "The unique identifier of the user who owns this SSH key.", - "pattern": "^[a-zA-Z0-9-]+$" - } - } - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "SSH_Key_Service_API_SshKeys": { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "prev": { - "description": "Link to the previous page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - }, - "next": { - "description": "Link to the next page (templated)", - "type": "object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - }, - "offset": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - }, - { - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for offset" - }, - "limit": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - }, - { - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for limit" - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "count": { - "type": "integer", - "description": "The number of items in the current page" - }, - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "The total number of items available" - }, - "limit": { - "type": "integer", - "description": "The maximum number of items to retrieve in a single page" - }, - "offset": { - "type": "integer", - "description": "The starting position of the items to retrieve" - } - }, - "required": [ - "total", - "limit", - "offset" - ] - } - }, - "required": [ - "count", - "total", - "pagination" - ] - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "filter": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - }, - { - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for filtering." - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - } - } - } - ] - }, - { - "allOf": [ - { - "allOf": [ - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - }, - { - "type": "object", - "properties": { - "_embedded": { - "type": "object", - "description": "Embedded resources for the collection", - "properties": { - "items": { - "type": "array", - "description": "The array of resources in the collection", - "items": { - "type": "object" - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "properties": { - "sort": { - "allOf": [ - { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - }, - { - "properties": { - "templated": { - "type": "boolean", - "enum": [ - true - ] - } - }, - "required": [ - "templated" - ] - } - ], - "description": "Templated link for sorting." - } - }, - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - } - } - } - ] - }, - { - "type": "object", - "description": "A collection of SSH keys.", - "properties": { - "_embedded": { - "type": "object", - "description": "A collection of SSH keys matching the request parameters.", - "properties": { - "items": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "required": [ - "id", - "label", - "public_key", - "fingerprint", - "created_at", - "user_id" - ], - "description": "Details an SSH key.", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the SSH key.", - "pattern": "^[a-zA-Z0-9-]+$" - }, - "label": { - "type": "string", - "description": "The human-readable key label." - }, - "public_key": { - "type": "string", - "description": "The public key.", - "minLength": 64 - }, - "fingerprint": { - "type": "string", - "description": "The public key fingerprint.", - "pattern": "^[A-Za-z0-9:+/=.-]+$" - }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "The key creation date." - }, - "user_id": { - "type": "string", - "description": "The unique identifier of the user who owns this SSH key.", - "pattern": "^[a-zA-Z0-9-]+$" - } - } - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - } - } - }, - "required": [ - "items" - ] - } - }, - "required": [ - "_embedded" - ] - } - ] - }, - "SSH_Key_Service_API_Message": { - "allOf": [ - { - "type": "object", - "required": [ - "message" - ], - "properties": { - "message": { - "type": "string", - "description": "The human-friendly confirmation of the operation." - } - } - }, - { - "type": "object", - "properties": { - "_links": { - "type": "object", - "description": "HAL links for the resource", - "properties": { - "self": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "required": [ - "self" - ], - "additionalProperties": { - "type": "object", - "description": "HAL link object", - "properties": { - "href": { - "type": "string", - "anyOf": [ - { - "format": "uri" - }, - { - "format": "uri-template" - } - ], - "description": "The target URI of the link (can be a URI or URI template)" - }, - "templated": { - "type": "boolean", - "description": "Whether the link is a URI template" - }, - "type": { - "type": "string", - "description": "Hint about the media type expected when dereferencing the target resource" - }, - "deprecation": { - "type": "string", - "description": "A URL to a resource that provides deprecation information" - }, - "name": { - "type": "string", - "description": "A secondary key for selecting links" - }, - "profile": { - "type": "string", - "description": "A URI that hints about the profile of the target resource" - }, - "title": { - "type": "string", - "description": "A human-readable identifier for the link" - }, - "hreflang": { - "type": "string", - "description": "The language of the target resource" - } - }, - "required": [ - "href" - ] - } - }, - "_embedded": { - "type": "object", - "description": "Embedded resources (optional)", - "additionalProperties": {} - } - }, - "required": [ - "_links" - ] - } - ] - }, - "SSH_Key_Service_API_ValidationError": { - "type": "object", - "required": [ - "error", - "message" - ], - "description": "A validation error.", - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "object", - "description": "The validation error message keyed by its field or group name.", - "additionalProperties": { - "type": "string" - } - } - } - }, - "SSH_Key_Service_API_Error": { - "type": "object", - "required": [ - "error", - "message" - ], - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "string", - "description": "The long description for the returned error." - } - } - }, - "SSH_Key_Service_API_UnauthorizedError": { - "allOf": [ - { - "type": "object", - "required": [ - "error", - "message" - ], - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "string", - "description": "The long description for the returned error." - } - } - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "unauthorized" - }, - "message": { - "type": "string", - "const": "You do not have permission to access this resource." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "SSH_Key_Service_API_ForbiddenError": { - "allOf": [ - { - "type": "object", - "required": [ - "error", - "message" - ], - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "string", - "description": "The long description for the returned error." - } - } - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "forbidden" - }, - "message": { - "type": "string", - "example": "You do not have permission to perform this action." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "SSH_Key_Service_API_NotFoundError": { - "allOf": [ - { - "type": "object", - "required": [ - "error", - "message" - ], - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "string", - "description": "The long description for the returned error." - } - } - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "not_found" - }, - "message": { - "type": "string", - "example": "The resource you are trying to access does not exist, or you do not have access to it." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "SSH_Key_Service_API_InvalidOperationError": { - "allOf": [ - { - "type": "object", - "required": [ - "error", - "message" - ], - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "string", - "description": "The long description for the returned error." - } - } - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "conflict" - }, - "message": { - "type": "string", - "example": "The requested operation is invalid or cannot be completed." - } - }, - "required": [ - "error", - "message" - ] - } - ] - }, - "SSH_Key_Service_API_InternalServerError": { - "allOf": [ - { - "type": "object", - "required": [ - "error", - "message" - ], - "properties": { - "error": { - "type": "string", - "description": "The error summary." - }, - "message": { - "type": "string", - "description": "The long description for the returned error." - } - } - }, - { - "type": "object", - "properties": { - "error": { - "type": "string", - "const": "system" - }, - "message": { - "type": "string", - "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", - "description": "Standard error message with variable request ID.", - "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789." - } - }, - "required": [ - "error", - "message" - ] - } - ] - } - }, - "securitySchemes": { - "Failover_Service_API_BearerAuth": { - "type": "http", - "scheme": "bearer", - "bearerFormat": "JWT", - "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'" - }, - "Codebase_Service_API_BearerAuth": { - "type": "http", - "scheme": "bearer", - "bearerFormat": "JWT", - "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'" - }, - "Tag_API_BearerAuth": { - "type": "http", - "scheme": "bearer", - "bearerFormat": "JWT", - "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'" - }, - "Site_Service_API_BearerAuth": { - "type": "http", - "scheme": "bearer", - "bearerFormat": "JWT", - "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'" - }, - "CDN_API_BearerAuth": { - "type": "http", - "scheme": "bearer", - "bearerFormat": "JWT", - "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'" - }, - "Environment_Service_API_BearerAuth": { - "type": "http", - "scheme": "bearer", - "bearerFormat": "JWT", - "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'" - }, - "Federated_Authentication_API_BearerAuth": { - "type": "http", - "scheme": "bearer", - "bearerFormat": "JWT", - "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'" - }, - "SSH_Key_Service_API_BearerAuth": { - "type": "http", - "scheme": "bearer", - "bearerFormat": "JWT", - "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'" - } - } - }, - "x-tagGroups": [ - { - "name": "Failover Service API", - "tags": [ - "Failover_Service_API_Failover Groups", - "Failover_Service_API_Environments" - ] - }, - { - "name": "Codebase Service API", - "tags": [ - "Codebase_Service_API_Codebases", - "Codebase_Service_API_Codebase References", - "Codebase_Service_API_Domain Patterns" - ] - }, - { - "name": "Tag API", - "tags": [ - "Tag_API_Tags" - ] - }, - { - "name": "Site Service API", - "tags": [ - "Site_Service_API_Sites" - ] - }, - { - "name": "CDN API", - "tags": [ - "CDN_API_CDNs" - ] - }, - { - "name": "Environment Service API", - "tags": [ - "Environment_Service_API_Environments", - "Environment_Service_API_Site Instances", - "Environment_Service_API_Deployments", - "Environment_Service_API_Code Deploys", - "Environment_Service_API_Domains", - "Environment_Service_API_Site Instance Databases", - "Environment_Service_API_Domain Patterns" - ] - }, - { - "name": "Federated Authentication API", - "tags": [ - "Federated_Authentication_API_Domains", - "Federated_Authentication_API_Identity Providers" - ] - }, - { - "name": "SSH Key Service API", - "tags": [ - "SSH_Key_Service_API_SSH Keys" - ] - } - ] -} \ No newline at end of file +{"openapi": "3.1.1", "info": {"title": "Acquia Cloud Platform API", "version": "3.0.0", "description": "The Cloud Platform API includes over 200 endpoints to enhance developer workflow, website management, and provisioning capabilities.", "license": {"name": "Acquia Terms of Service", "url": "https://www.acquia.com/acquia/agreement"}, "contact": {"name": "Acquia", "url": "https://www.acquia.com/contact"}}, "servers": [{"url": "https://api.acquia.com/v3"}], "tags": [{"name": "Failover Groups", "description": "Failover group management", "x-displayName": "Failover Groups"}, {"name": "Environments", "description": "Environment configuration and lifecycle", "x-displayName": "Environments"}, {"name": "OpenAPI Specs", "description": "Acquia Cloud Platform API specification", "x-displayName": "OpenAPI Specs"}, {"name": "CDNs", "description": "CDN domain management and cache purge operations", "x-displayName": "CDNs"}, {"name": "Site Instances", "description": "Site instance management", "x-displayName": "Site Instances"}, {"name": "Deployments", "description": "Deployment management", "x-displayName": "Deployments"}, {"name": "Code Deploys", "description": "Code deploy operations", "x-displayName": "Code Deploys"}, {"name": "Domains", "description": "Domain management", "x-displayName": "Domains"}, {"name": "Site Instance Databases", "description": "Site instance database, connection, and backup management", "x-displayName": "Site Instance Databases"}, {"name": "Domain Patterns", "description": "Automated domain pattern management", "x-displayName": "Domain Patterns"}, {"name": "SSH Keys", "description": "SSH key management for user accounts", "x-displayName": "SSH Keys"}, {"name": "Sites", "description": "Site management", "x-displayName": "Sites"}, {"name": "Identity Providers", "description": "Federated SSO identity provider management", "x-displayName": "Identity Providers"}, {"name": "Codebases", "description": "Codebase management", "x-displayName": "Codebases"}, {"name": "Codebase References", "description": "Codebase branch and tag references", "x-displayName": "Codebase References"}], "paths": {"/failover-groups": {"get": {"summary": "Retrieves a collection of failover groups.", "operationId": "getFailoverGroups", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "failover-groups:list"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Failover Groups"], "description": "Retrieves a collection of failover groups. Use the `filter` parameter to scope results by source environment.\n\nFilter syntax:\n- By source environment: `filter=environment_id:`\n", "parameters": [{"$ref": "#/components/parameters/Failover_Service_API_Offset"}, {"$ref": "#/components/parameters/Failover_Service_API_Limit"}, {"$ref": "#/components/parameters/Failover_Service_API_Filter"}], "responses": {"200": {"$ref": "#/components/responses/Failover_Service_API_FailoverGroupCollection"}, "400": {"$ref": "#/components/responses/Failover_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Failover_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Failover_Service_API_ForbiddenError"}, "500": {"$ref": "#/components/responses/Failover_Service_API_InternalServerError"}}, "security": [{"Failover_Service_API_BearerAuth": []}]}, "post": {"summary": "Creates a new failover group.", "operationId": "createFailoverGroup", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "failover-groups:create"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Failover Groups"], "requestBody": {"$ref": "#/components/requestBodies/Failover_Service_API_CreateFailoverGroupRequest"}, "responses": {"202": {"$ref": "#/components/responses/Failover_Service_API_CreateFailoverGroupResponse"}, "400": {"$ref": "#/components/responses/Failover_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Failover_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Failover_Service_API_ForbiddenError"}, "409": {"$ref": "#/components/responses/Failover_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Failover_Service_API_InternalServerError"}}, "security": [{"Failover_Service_API_BearerAuth": []}]}}, "/failover-groups/{failoverGroupId}": {"get": {"summary": "Retrieves a failover group by ID.", "operationId": "findFailoverGroupByFailoverGroupId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "failover-groups:find"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Failover Groups"], "parameters": [{"$ref": "#/components/parameters/Failover_Service_API_FailoverGroupId"}], "responses": {"200": {"$ref": "#/components/responses/Failover_Service_API_FailoverGroup"}, "401": {"$ref": "#/components/responses/Failover_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Failover_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Failover_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Failover_Service_API_InternalServerError"}}, "security": [{"Failover_Service_API_BearerAuth": []}]}, "delete": {"summary": "Deletes a failover group by ID.", "operationId": "deleteFailoverGroupByFailoverGroupId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "failover-groups:delete"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Failover Groups"], "parameters": [{"$ref": "#/components/parameters/Failover_Service_API_FailoverGroupId"}], "responses": {"202": {"$ref": "#/components/responses/Failover_Service_API_DeleteFailoverGroupResponse"}, "401": {"$ref": "#/components/responses/Failover_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Failover_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Failover_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Failover_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Failover_Service_API_InternalServerError"}}, "security": [{"Failover_Service_API_BearerAuth": []}]}}, "/failover-groups/{failoverGroupId}/actions/failover": {"post": {"summary": "Initiates failover for a failover group.", "operationId": "failoverFailoverGroupByFailoverGroupId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "failover-groups:failover"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Failover Groups"], "parameters": [{"$ref": "#/components/parameters/Failover_Service_API_FailoverGroupId"}], "responses": {"202": {"$ref": "#/components/responses/Failover_Service_API_FailoverGroupFailoverResponse"}, "401": {"$ref": "#/components/responses/Failover_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Failover_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Failover_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Failover_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Failover_Service_API_InternalServerError"}}, "security": [{"Failover_Service_API_BearerAuth": []}]}}, "/failover-groups/{failoverGroupId}/actions/revert-failover": {"post": {"summary": "Initiates a revert failover for a failover group.", "operationId": "revertFailoverFailoverGroupByFailoverGroupId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "failover-groups:revert-failover"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Failover Groups"], "parameters": [{"$ref": "#/components/parameters/Failover_Service_API_FailoverGroupId"}], "responses": {"202": {"$ref": "#/components/responses/Failover_Service_API_FailoverGroupRevertFailoverResponse"}, "401": {"$ref": "#/components/responses/Failover_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Failover_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Failover_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Failover_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Failover_Service_API_InternalServerError"}}, "security": [{"Failover_Service_API_BearerAuth": []}]}}, "/failover-groups/{failoverGroupId}/actions/sync": {"post": {"summary": "Initiates a sync for a failover group.", "operationId": "syncFailoverGroupByFailoverGroupId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "failover-groups:sync"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Failover Groups"], "parameters": [{"$ref": "#/components/parameters/Failover_Service_API_FailoverGroupId"}], "responses": {"202": {"$ref": "#/components/responses/Failover_Service_API_FailoverGroupSyncResponse"}, "401": {"$ref": "#/components/responses/Failover_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Failover_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Failover_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Failover_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Failover_Service_API_InternalServerError"}}, "security": [{"Failover_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/multi-region-failover": {"get": {"summary": "Retrieves the multi-region failover status for an environment.", "operationId": "findMultiRegionFailoverByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:find-multi-region-failover"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Failover_Service_API_EnvironmentId"}], "responses": {"200": {"$ref": "#/components/responses/Failover_Service_API_MultiRegionFailoverStatus"}, "401": {"$ref": "#/components/responses/Failover_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Failover_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Failover_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Failover_Service_API_InternalServerError"}}, "security": [{"Failover_Service_API_BearerAuth": []}]}, "put": {"summary": "Enables multi-region failover for an environment.", "operationId": "saveMultiRegionFailoverByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:update-multi-region-failover"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Failover_Service_API_EnvironmentId"}], "requestBody": {"$ref": "#/components/requestBodies/Failover_Service_API_SaveMultiRegionFailoverRequest"}, "responses": {"202": {"$ref": "#/components/responses/Failover_Service_API_SaveMultiRegionFailoverResponse"}, "400": {"$ref": "#/components/responses/Failover_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Failover_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Failover_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Failover_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Failover_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Failover_Service_API_InternalServerError"}}, "security": [{"Failover_Service_API_BearerAuth": []}]}, "delete": {"summary": "Disables multi-region failover for an environment.", "operationId": "deleteMultiRegionFailoverByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:delete-multi-region-failover"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Failover_Service_API_EnvironmentId"}], "responses": {"202": {"$ref": "#/components/responses/Failover_Service_API_DeleteMultiRegionFailoverResponse"}, "401": {"$ref": "#/components/responses/Failover_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Failover_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Failover_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Failover_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Failover_Service_API_InternalServerError"}}, "security": [{"Failover_Service_API_BearerAuth": []}]}}, "/openapi.yaml": {"get": {"summary": "Gets the combined OpenAPI specification.", "description": "Returns the combined Acquia Cloud Platform OpenAPI specification as a YAML document.\nThis endpoint is publicly accessible and does not require authentication.\n", "operationId": "getOpenApiSpec", "security": [], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}}, "stability": "production", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "api-specs"}}, "tags": ["OpenAPI Specs"], "responses": {"200": {"description": "OK", "content": {"text/yaml": {"schema": {"type": "string", "description": "The combined Acquia Cloud Platform OpenAPI specification as a YAML document."}, "example": "openapi: '3.1.1'\ninfo:\n title: Acquia Cloud Platform API\n version: 3.0.0\n"}}}, "500": {"$ref": "#/components/responses/API_Specs_API_InternalServerError"}}}}, "/subscriptions/{subscriptionUuid}/domains": {"get": {"operationId": "getDomainsBySubscriptionUuid", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:list-domains"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Retrieves a collection of CDN domains for a subscription", "description": "Retrieves a paginated list of CDN domains for the specified subscription.\n\n**Filtering:**\n - Format: `field=value` or `fieldvalue`\n - AND logic: semicolon (`;`) \u2014 `status=active;application_name=my-app`\n - OR logic: comma (`,`) \u2014 `status=active,status=pending`\n\n**Sorting:**\n- Format: Comma-delimited fields. Prefix with `-` for descending.\n- Example: `domain,-created_at`\n", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_Offset"}, {"$ref": "#/components/parameters/CDN_API_Limit"}, {"$ref": "#/components/parameters/CDN_API_Filter"}, {"$ref": "#/components/parameters/CDN_API_Sort"}], "responses": {"200": {"$ref": "#/components/responses/CDN_API_DomainCollection"}, "400": {"$ref": "#/components/responses/CDN_API_ValidationError"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/domains/{domainName}": {"get": {"summary": "Retrieves a domain by domain name.", "description": "Retrieves the full details of a CDN domain within a subscription, identified by its fully qualified domain name.", "operationId": "findDomainBySubscriptionUuidAndDomainName", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:find-domain"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_DomainName"}], "responses": {"200": {"$ref": "#/components/responses/CDN_API_Domain"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/domains/{domainName}/actions/provision": {"post": {"operationId": "provisionDomainBySubscriptionUuidAndDomainName", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:provision-domain"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Provisions a domain for CDN services", "description": "Provisions a domain for CDN services within a subscription by associating it with an environment.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_DomainName"}], "requestBody": {"$ref": "#/components/requestBodies/CDN_API_ProvisionCdnForDomainRequest"}, "responses": {"202": {"$ref": "#/components/responses/CDN_API_DomainCdnProvisioningAccepted"}, "400": {"$ref": "#/components/responses/CDN_API_ValidationError"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "409": {"$ref": "#/components/responses/CDN_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/domains/{domainName}/actions/deprovision": {"post": {"operationId": "deprovisionDomainBySubscriptionUuidAndDomainName", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:deprovision-domain"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Deprovisions a domain from CDN services", "description": "Deprovisions a domain for CDN services within a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_DomainName"}], "responses": {"202": {"$ref": "#/components/responses/CDN_API_DomainCdnDeprovisioningAccepted"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "409": {"$ref": "#/components/responses/CDN_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/environments/{environmentId}/actions/purge-cdn": {"post": {"operationId": "purgeCdnByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:purge-cdn"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Creates a CDN cache purge request", "description": "Creates a request to purge cached content from the CDN for the specified environment.\n\n**Resource Types** (specified in the request body):\n- `urls` - Purge specific URLs\n- `tags` - Purge by cache tags\n- `domains` - Purge entire domains\n- `everything` - Purge all content in the environment\n", "parameters": [{"$ref": "#/components/parameters/CDN_API_EnvironmentId"}], "requestBody": {"$ref": "#/components/requestBodies/CDN_API_CreatePurgeRequest"}, "responses": {"202": {"$ref": "#/components/responses/CDN_API_PurgeAccepted"}, "400": {"$ref": "#/components/responses/CDN_API_ValidationError"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "409": {"$ref": "#/components/responses/CDN_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/config/security/rulesets": {"get": {"operationId": "getSecurityRuleSetsBySubscriptionUuid", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:list-security-rule-sets"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Retrieves a collection of security rulesets.", "description": "Retrieves security rulesets for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_Offset"}, {"$ref": "#/components/parameters/CDN_API_Limit"}], "responses": {"200": {"$ref": "#/components/responses/CDN_API_SecurityRuleSetCollection"}, "400": {"$ref": "#/components/responses/CDN_API_ValidationError"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/config/security/rulesets/{ruleSetId}": {"get": {"operationId": "findSecurityRuleSetBySubscriptionUuidAndRuleSetId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:find-security-rule-set"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Retrieves a security ruleset.", "description": "Retrieves a security ruleset for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_RuleSetId"}], "responses": {"200": {"$ref": "#/components/responses/CDN_API_SecurityRuleSet"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}, "put": {"operationId": "updateSecurityRuleSetBySubscriptionUuidAndRuleSetId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:update-security-rule-set"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Updates a security rulesets.", "description": "Updates a security rulesets for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_RuleSetId"}], "requestBody": {"$ref": "#/components/requestBodies/CDN_API_UpdateSecurityRuleSetRequest"}, "responses": {"200": {"$ref": "#/components/responses/CDN_API_SecurityRuleSetUpdated"}, "400": {"$ref": "#/components/responses/CDN_API_ValidationError"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "409": {"$ref": "#/components/responses/CDN_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/config/security/ip-rules": {"get": {"operationId": "getIpRulesBySubscriptionUuid", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:list-ip-rules"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Retrieves a collection of IP rules.", "description": "Retrieves IP rules for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_Filter"}, {"$ref": "#/components/parameters/CDN_API_Sort"}, {"$ref": "#/components/parameters/CDN_API_Offset"}, {"$ref": "#/components/parameters/CDN_API_Limit"}], "responses": {"200": {"$ref": "#/components/responses/CDN_API_IpRuleCollection"}, "400": {"$ref": "#/components/responses/CDN_API_ValidationError"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}, "post": {"operationId": "createIpRuleBySubscriptionUuid", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:create-ip-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Creates an IP rule.", "description": "Creates an IP rule for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}], "requestBody": {"$ref": "#/components/requestBodies/CDN_API_CreateIpRuleRequest"}, "responses": {"200": {"$ref": "#/components/responses/CDN_API_IpRuleCreated"}, "400": {"$ref": "#/components/responses/CDN_API_ValidationError"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "409": {"$ref": "#/components/responses/CDN_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/config/security/ip-rules/{ipRuleId}": {"get": {"operationId": "findIpRuleBySubscriptionUuidAndIpRuleId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:find-ip-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Retrieves an IP rule.", "description": "Retrieves an IP rule for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_IpRuleId"}], "responses": {"200": {"$ref": "#/components/responses/CDN_API_IpRule"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}, "put": {"operationId": "updateIpRuleBySubscriptionUuidAndIpRuleId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:update-ip-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Updates an IP rule.", "description": "Updates an IP rule for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_IpRuleId"}], "requestBody": {"$ref": "#/components/requestBodies/CDN_API_UpdateIpRuleRequest"}, "responses": {"200": {"$ref": "#/components/responses/CDN_API_IpRuleUpdated"}, "400": {"$ref": "#/components/responses/CDN_API_ValidationError"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "409": {"$ref": "#/components/responses/CDN_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}, "delete": {"operationId": "deleteIpRuleBySubscriptionUuidAndIpRuleId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:delete-ip-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Deletes an IP rule.", "description": "Deletes an IP rule for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_IpRuleId"}], "responses": {"200": {"$ref": "#/components/responses/CDN_API_IpRuleDeleted"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "409": {"$ref": "#/components/responses/CDN_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/config/security/custom-rules": {"get": {"operationId": "getCustomRulesBySubscriptionUuid", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:list-custom-rules"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Retrieves a collection of custom security rules.", "description": "Retrieves custom security rules for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_Offset"}, {"$ref": "#/components/parameters/CDN_API_Limit"}], "responses": {"200": {"$ref": "#/components/responses/CDN_API_CustomRuleCollection"}, "400": {"$ref": "#/components/responses/CDN_API_ValidationError"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}, "post": {"operationId": "createCustomRuleBySubscriptionUuid", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:create-custom-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Creates a custom security rule.", "description": "Creates a custom security rule for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}], "requestBody": {"$ref": "#/components/requestBodies/CDN_API_CreateCustomRuleRequest"}, "responses": {"200": {"$ref": "#/components/responses/CDN_API_CustomRuleCreated"}, "400": {"$ref": "#/components/responses/CDN_API_ValidationError"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "409": {"$ref": "#/components/responses/CDN_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/config/security/custom-rules/{customRuleId}": {"get": {"operationId": "findCustomRuleBySubscriptionUuidAndCustomRuleId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:find-custom-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Retrieves a custom security rule.", "description": "Retrieves a custom security rule for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_CustomRuleId"}], "responses": {"200": {"$ref": "#/components/responses/CDN_API_CustomRule"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}, "put": {"operationId": "updateCustomRuleBySubscriptionUuidAndCustomRuleId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:update-custom-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Updates a custom security rule.", "description": "Updates a custom security rule for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_CustomRuleId"}], "requestBody": {"$ref": "#/components/requestBodies/CDN_API_UpdateCustomRuleRequest"}, "responses": {"200": {"$ref": "#/components/responses/CDN_API_CustomRuleUpdated"}, "400": {"$ref": "#/components/responses/CDN_API_ValidationError"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "409": {"$ref": "#/components/responses/CDN_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}, "delete": {"operationId": "deleteCustomRuleBySubscriptionUuidAndCustomRuleId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:delete-custom-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Deletes a custom security rule.", "description": "Deletes a custom security rule for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_CustomRuleId"}], "responses": {"200": {"$ref": "#/components/responses/CDN_API_CustomRuleDeleted"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "409": {"$ref": "#/components/responses/CDN_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/config/security/rate-limiting-rules": {"get": {"operationId": "getRateLimitingRulesBySubscriptionUuid", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:list-rate-limiting-rules"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Retrieves a collection of rate limiting rules.", "description": "Retrieves rate limiting rules for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_Filter"}, {"$ref": "#/components/parameters/CDN_API_Sort"}, {"$ref": "#/components/parameters/CDN_API_Offset"}, {"$ref": "#/components/parameters/CDN_API_Limit"}], "responses": {"200": {"$ref": "#/components/responses/CDN_API_RateLimitingRuleCollection"}, "400": {"$ref": "#/components/responses/CDN_API_ValidationError"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}, "post": {"operationId": "createRateLimitingRuleBySubscriptionUuid", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:create-rate-limiting-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Creates a rate limiting rule.", "description": "Creates a rate limiting rule for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}], "requestBody": {"$ref": "#/components/requestBodies/CDN_API_CreateRateLimitingRuleRequest"}, "responses": {"200": {"$ref": "#/components/responses/CDN_API_RateLimitingRuleCreated"}, "400": {"$ref": "#/components/responses/CDN_API_ValidationError"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "409": {"$ref": "#/components/responses/CDN_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/config/security/rate-limiting-rules/{rateLimitingRuleId}": {"get": {"operationId": "findRateLimitingRuleBySubscriptionUuidAndRateLimitingRuleId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:find-rate-limiting-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Retrieves a rate limiting rule.", "description": "Retrieves a rate limiting rule for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_RateLimitingRuleId"}], "responses": {"200": {"$ref": "#/components/responses/CDN_API_RateLimitingRule"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}, "put": {"operationId": "updateRateLimitingRuleBySubscriptionUuidAndRateLimitingRuleId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:update-rate-limiting-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Updates a rate limiting rule.", "description": "Updates a rate limiting rule for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_RateLimitingRuleId"}], "requestBody": {"$ref": "#/components/requestBodies/CDN_API_UpdateRateLimitingRuleRequest"}, "responses": {"200": {"$ref": "#/components/responses/CDN_API_RateLimitingRuleUpdated"}, "400": {"$ref": "#/components/responses/CDN_API_ValidationError"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "409": {"$ref": "#/components/responses/CDN_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}, "delete": {"operationId": "deleteRateLimitingRuleBySubscriptionUuidAndRateLimitingRuleId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:delete-rate-limiting-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Deletes a rate limiting rule.", "description": "Deletes a rate limiting rule for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_RateLimitingRuleId"}], "responses": {"200": {"$ref": "#/components/responses/CDN_API_RateLimitingRuleDeleted"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "409": {"$ref": "#/components/responses/CDN_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/codebases/{codebaseId}/environments": {"get": {"summary": "Retrieves a collection of environments for the specified codebase.", "operationId": "getEnvironmentsByCodebaseId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:list-environments"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_CodebaseId"}, {"$ref": "#/components/parameters/Environment_Service_API_Offset"}, {"$ref": "#/components/parameters/Environment_Service_API_Limit"}, {"$ref": "#/components/parameters/Environment_Service_API_Filter"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_FilterableEnvironmentCollection"}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/codebases/{codebaseId}/environments/{environmentId}": {"get": {"summary": "Retrieves details for an environment by codebase and environment ID.", "operationId": "findEnvironmentByCodebaseIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:find-environment"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_CodebaseId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_Environment"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/sites/{siteId}/environments": {"get": {"summary": "Retrieves a collection of environments for the specified site.", "operationId": "getEnvironmentsBySiteId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sites:list-environments"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_Offset"}, {"$ref": "#/components/parameters/Environment_Service_API_Limit"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_EnvironmentCollection"}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/private-networks/{privateNetworkId}/environments": {"get": {"summary": "Retrieves a collection of environments associated with the specified private network.", "operationId": "getEnvironmentsByPrivateNetworkId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "private-networks:list-environments"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_PrivateNetworkId"}, {"$ref": "#/components/parameters/Environment_Service_API_Offset"}, {"$ref": "#/components/parameters/Environment_Service_API_Limit"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_EnvironmentCollection"}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}": {"get": {"summary": "Get environment details.", "operationId": "findEnvironmentByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:find"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_Environment"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "put": {"summary": "Modifies properties settings for the specified environment.", "operationId": "updateEnvironmentByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:update"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "requestBody": {"$ref": "#/components/requestBodies/Environment_Service_API_UpdateEnvironmentRequest"}, "responses": {"202": {"description": "Environment update started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Environment update started.", "description": "Confirmation message that the environment update has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc"}}, "message": "Environment update started."}}}}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/actions/enable-protection-mode": {"post": {"summary": "Enable Environment Protection mode.", "operationId": "enableEnvironmentProtectionModeByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:enable-protection-mode"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"202": {"description": "Enable protection mode initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Environment protection mode enabled.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323"}}, "message": "Environment protection mode enabled."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/actions/disable-protection-mode": {"post": {"summary": "Disable Environment Protection mode.", "operationId": "disableEnvironmentProtectionModeByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:disable-protection-mode"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"202": {"description": "Disable protection mode initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Environment protection mode disabled.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323"}}, "message": "Environment protection mode disabled."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/actions/clear-caches": {"post": {"summary": "Clears caches for the specified environment.", "operationId": "clearEnvironmentCachesByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:clear-caches"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "requestBody": {"$ref": "#/components/requestBodies/Environment_Service_API_ClearCachesRequest"}, "responses": {"202": {"description": "Cache clear started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Varnish domain cache clear started.", "description": "Confirmation message that the cache clear has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc"}}, "message": "Varnish domain cache clear started."}}}}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/eips": {"get": {"summary": "Retrieves a collection of egress IPs for the specified environment.", "operationId": "getEgressIpsByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:list-egress-ips"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_Offset"}, {"$ref": "#/components/parameters/Environment_Service_API_Limit"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_EgressIpCollection"}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/private-network": {"get": {"summary": "Retrieves the private network associated with the specified environment.", "operationId": "findPrivateNetworkByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:find-private-network"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_PrivateNetwork"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "put": {"summary": "Associates the specified environment with a private network.", "operationId": "saveEnvironmentPrivateNetworkByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:associate-private-network"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "requestBody": {"$ref": "#/components/requestBodies/Environment_Service_API_AssociatePrivateNetworkRequest"}, "responses": {"202": {"description": "Private network association started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Associating private network started.", "description": "Confirmation message that the association has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/private-network"}}, "message": "Associating private network started."}}}}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "delete": {"summary": "Disassociates the specified environment from its private network.", "operationId": "deleteEnvironmentPrivateNetworkByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:disassociate-private-network"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"202": {"description": "Private network disassociation started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Disassociating environment from private network started.", "description": "Confirmation message that the disassociation has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/private-network"}}, "message": "Disassociating environment from private network started."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/trusted-proxies": {"get": {"summary": "Retrieves the trusted proxy configuration for the specified environment.", "operationId": "findTrustedProxiesByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:find-trusted-proxies"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_TrustedProxies"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "put": {"summary": "Updates the trusted proxy configuration for the specified environment.", "operationId": "updateTrustedProxiesByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:update-trusted-proxies"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "requestBody": {"$ref": "#/components/requestBodies/Environment_Service_API_UpdateTrustedProxiesRequest"}, "responses": {"200": {"description": "Trusted proxy configuration updated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Trusted Proxies updated successfully.", "description": "Confirmation message that the configuration has been updated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/trusted-proxies"}}, "message": "Trusted Proxies updated successfully."}}}}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/deployments": {"get": {"summary": "Retrieves a collection of deployments for the specified environment.", "operationId": "getDeploymentsByEnvironmentId", "tags": ["Deployments"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:list-deployments"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_Offset"}, {"$ref": "#/components/parameters/Environment_Service_API_Limit"}, {"$ref": "#/components/parameters/Environment_Service_API_Filter"}, {"$ref": "#/components/parameters/Environment_Service_API_Sort"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_DeploymentCollection"}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "post": {"summary": "Starts a deployment for the specified environment.", "operationId": "createDeploymentByEnvironmentId", "tags": ["Deployments"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:create-deployment"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "requestBody": {"$ref": "#/components/requestBodies/Environment_Service_API_StartDeploymentRequest"}, "responses": {"202": {"description": "Deployment started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Deployment started.", "description": "Confirmation message that the deployment has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3"}}, "message": "Deployment started."}}}}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/code-deploy": {"get": {"summary": "Retrieves the code deploy concurrency setting for the environment.", "operationId": "findCodeDeployByEnvironmentId", "tags": ["Code Deploys"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:find-code-deploy"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_CodeDeploy"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "put": {"summary": "Updates the code deploy concurrency setting for the environment.", "operationId": "updateCodeDeployByEnvironmentId", "tags": ["Code Deploys"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:update-code-deploy"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "requestBody": {"$ref": "#/components/requestBodies/Environment_Service_API_UpdateCodeDeployRequest"}, "responses": {"200": {"description": "Code deploy concurrency setting updated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Code deploy settings updated successfully.", "description": "Confirmation message that the concurrency setting has been updated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/code-deploy"}}, "message": "Code deploy settings updated successfully."}}}}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/site-instances": {"post": {"summary": "Associates a site with the specified environment.", "operationId": "createSiteInstanceByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:create-site-instance"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "requestBody": {"$ref": "#/components/requestBodies/Environment_Service_API_CreateSiteInstanceRequest"}, "responses": {"202": {"description": "Site instance creation started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instance creation started.", "description": "Confirmation message that site association has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323"}}, "message": "Site instance creation started."}}}}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/site-instances/actions/reorder": {"post": {"summary": "Updates the priority order of site instances for the environment.", "operationId": "reorderSiteInstancesByEnvironmentId", "tags": ["Site Instances"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:reorder-site-instances"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "requestBody": {"$ref": "#/components/requestBodies/Environment_Service_API_ReorderSiteInstancesRequest"}, "responses": {"200": {"description": "Site instances reordered successfully", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instances reordered successfully.", "description": "Confirmation message that the site instances have been reordered."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/site-instances"}}, "message": "Site instances reordered successfully."}}}}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}": {"get": {"summary": "Get site instance details.", "operationId": "findSiteInstanceBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:find"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_SiteInstance"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "delete": {"summary": "Dissociates a site and environment with no grace period.", "operationId": "deleteSiteInstanceBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:delete"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"202": {"description": "Site instance deletion started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instance deletion started.", "description": "Confirmation message that the deletion has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323"}}, "message": "Site instance deletion started."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/files": {"post": {"summary": "Copies files from one environment to another for the specified site instance.", "operationId": "copySiteInstanceFilesBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:copy-files"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "requestBody": {"$ref": "#/components/requestBodies/Environment_Service_API_CopySiteInstanceFilesRequest"}, "responses": {"202": {"description": "File copy started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "File copy started.", "description": "Confirmation message that the file copy has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323"}}, "message": "File copy started."}}}}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/actions/cancel": {"post": {"summary": "Dissociates a site and environment.", "operationId": "cancelSiteInstanceBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:cancel"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"202": {"description": "Site instance cancellation started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instance cancellation started.", "description": "Confirmation message that the cancellation has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323"}}, "message": "Site instance cancellation started."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/actions/enable-protection-mode": {"post": {"summary": "Enable Site Instance Protection mode.", "operationId": "enableSiteInstanceProtectionModeBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:enable-protection-mode"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"202": {"description": "Enable protection mode initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instance protection mode enabled.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323"}}, "message": "Site instance protection mode enabled."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/actions/disable-protection-mode": {"post": {"summary": "Disable Site Instance Protection mode.", "operationId": "disableSiteInstanceProtectionModeBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:disable-protection-mode"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"202": {"description": "Disable protection mode initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instance protection mode disabled.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323"}}, "message": "Site instance protection mode disabled."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/actions/inherit-protection-mode": {"post": {"summary": "Inherit Site Instance Protection mode.", "operationId": "inheritSiteInstanceProtectionModeBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:inherit-protection-mode"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"202": {"description": "Inherit protection mode initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instance protection mode inherited from environment.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323"}}, "message": "Site instance protection mode inherited from environment."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/actions/recover": {"post": {"summary": "Recovers a site instance that is scheduled for deletion", "operationId": "recoverSiteInstanceBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:recover"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"202": {"description": "Site instance restoration started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instance restoration started.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323"}, "parent": {"href": "https://api.acquia.com/v3/site-instances"}}, "message": "Site instance restoration started."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/actions/schedule-delete": {"post": {"summary": "Schedules a site instance for deletion.", "operationId": "scheduleDeleteSiteInstanceBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:schedule-delete"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"202": {"description": "Site instance deletion scheduled", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instance deletion scheduled.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323"}, "parent": {"href": "https://api.acquia.com/v3/site-instances"}}, "message": "Site instance deletion scheduled."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/domains": {"get": {"summary": "Retrieves a collection of domains for the specified site instance.", "operationId": "getDomainsBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:list-domains"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Domains"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_Offset"}, {"$ref": "#/components/parameters/Environment_Service_API_Limit"}, {"$ref": "#/components/parameters/Environment_Service_API_Filter"}, {"$ref": "#/components/parameters/Environment_Service_API_Sort"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_DomainCollection"}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/domains/{domainName}": {"get": {"summary": "Retrieves details for the specified domain on a site instance.", "operationId": "findDomainBySiteIdAndEnvironmentIdAndDomainName", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:find-domain"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Domains"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_DomainName"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_Domain"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "put": {"summary": "Adds a domain to the specified site instance.", "operationId": "saveDomainBySiteIdAndEnvironmentIdAndDomainName", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:update-domain"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Domains"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_DomainName"}], "responses": {"202": {"description": "Domain addition started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Domain addition started.", "description": "Confirmation message that the domain addition has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com"}}, "message": "Domain addition started."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "delete": {"summary": "Removes a domain from the specified site instance.", "operationId": "deleteDomainBySiteIdAndEnvironmentIdAndDomainName", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:delete-domain"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Domains"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_DomainName"}], "responses": {"202": {"description": "Domain removal started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Domain removal started.", "description": "Confirmation message that the domain removal has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com"}}, "message": "Domain removal started."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/domains/{domainName}/status": {"get": {"summary": "Retrieves the DNS status for the specified domain on a site instance.", "operationId": "findDomainStatusBySiteIdAndEnvironmentIdAndDomainName", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:find-domain-status"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Domains"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_DomainName"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_DomainStatus"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/database": {"get": {"summary": "Retrieves database details for the specified site instance.", "operationId": "findDatabaseBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:find-database"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instance Databases"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_Database"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "post": {"summary": "Copies a database from another environment to the specified site instance.", "operationId": "copySiteInstanceDatabaseBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:copy-database"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instance Databases"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "requestBody": {"$ref": "#/components/requestBodies/Environment_Service_API_CopySiteInstanceDatabaseRequest"}, "responses": {"202": {"description": "Database copy started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Database copy started.", "description": "Confirmation message that the database copy has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database"}}, "message": "Database copy started."}}}}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/database/connection": {"get": {"summary": "Retrieves database connection credentials for the specified site instance.", "operationId": "findDatabaseConnectionBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:find-database-connection"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instance Databases"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_DatabaseConnection"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/database/backups": {"get": {"summary": "Retrieves a collection of database backups for the specified site instance.", "operationId": "getDatabaseBackupsBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:list-database-backups"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instance Databases"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_Offset"}, {"$ref": "#/components/parameters/Environment_Service_API_Limit"}, {"$ref": "#/components/parameters/Environment_Service_API_Filter"}, {"$ref": "#/components/parameters/Environment_Service_API_Sort"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_DatabaseBackupCollection"}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "post": {"summary": "Creates a database backup for the specified site instance.", "operationId": "createDatabaseBackupBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:create-database-backup"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instance Databases"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"202": {"description": "Database backup creation started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Database backup started.", "description": "Confirmation message that the database backup has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups"}}, "message": "Database backup started."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/database/backups/{backupId}": {"get": {"summary": "Retrieves details for the specified database backup.", "operationId": "findDatabaseBackupBySiteIdAndEnvironmentIdAndBackupId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:find-database-backup"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instance Databases"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_BackupId"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_DatabaseBackup"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "delete": {"summary": "Deletes the specified database backup.", "operationId": "deleteDatabaseBackupBySiteIdAndEnvironmentIdAndBackupId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:delete-database-backup"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instance Databases"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_BackupId"}], "responses": {"202": {"description": "Database backup deletion started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Database backup deletion started.", "description": "Confirmation message that the deletion has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups/a1b2c3d4-e5f6-7890-abcd-ef1234567890"}}, "message": "Database backup deletion started."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/database/backups/{backupId}/actions/restore": {"post": {"summary": "Restores the specified database backup to the site instance.", "operationId": "restoreDatabaseBackupBySiteIdAndEnvironmentIdAndBackupId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:restore-database-backup"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instance Databases"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_BackupId"}], "responses": {"202": {"description": "Database backup restore started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Database restore started.", "description": "Confirmation message that the restore has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups/a1b2c3d4-e5f6-7890-abcd-ef1234567890"}}, "message": "Database restore started."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/deployments/{deploymentId}": {"get": {"summary": "Retrieves the status of a deployment by deployment ID.", "operationId": "findDeploymentByDeploymentId", "tags": ["Deployments"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "deployments:find"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_DeploymentId"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_Deployment"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/deployments/{deploymentId}/actions/stop": {"post": {"summary": "Stops a deployment by sending a stop request.", "operationId": "stopDeploymentByDeploymentId", "tags": ["Deployments"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "deployments:stop"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_DeploymentId"}], "responses": {"202": {"description": "Deployment stop initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Deployment stop initiated.", "description": "Confirmation message that the deployment stop has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3"}}, "message": "Deployment stop initiated."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/deployments/{deploymentId}/actions/terminate": {"post": {"summary": "Terminates a deployment immediately.", "operationId": "terminateDeploymentByDeploymentId", "tags": ["Deployments"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "deployments:terminate"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_DeploymentId"}], "responses": {"202": {"description": "Deployment termination is initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Deployment termination initiated.", "description": "Confirmation message that the deployment termination has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3"}}, "message": "Deployment termination initiated."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/actions/wipe": {"post": {"summary": "Wipes a site instance.", "operationId": "wipeSiteInstanceBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:wipe"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"202": {"description": "Site instance wipe started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instance wipe started.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://cloud.acquia.com/api/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323"}, "parent": {"href": "https://cloud.acquia.com/api/site-instances"}}, "message": "Site instance wipe started."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/domain-patterns": {"get": {"summary": "Retrieves a collection of domain patterns for the specified environment.", "operationId": "getDomainPatternsByEnvironmentId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:list-domain-patterns"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_Offset"}, {"$ref": "#/components/parameters/Environment_Service_API_Limit"}, {"$ref": "#/components/parameters/Environment_Service_API_Sort"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_DomainPatternCollection"}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "post": {"summary": "Creates a domain pattern for the specified environment.", "operationId": "createDomainPatternByEnvironmentId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:create-domain-pattern"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "requestBody": {"$ref": "#/components/requestBodies/Environment_Service_API_CreateDomainPatternRequest"}, "responses": {"202": {"description": "Domain pattern creation initiated.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The domain pattern is being applied to all associated sites in this environment.", "description": "Confirmation message that the domain pattern is being applied."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111"}}, "message": "The domain pattern is being applied to all associated sites in this environment."}}}}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/domain-patterns/{patternId}": {"get": {"summary": "Retrieves a domain pattern by environment ID and pattern ID.", "operationId": "findDomainPatternByEnvironmentIdAndPatternId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:find-domain-pattern"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_PatternId"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_DomainPattern"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "put": {"summary": "Updates a domain pattern for the specified environment.", "operationId": "updateDomainPatternByEnvironmentIdAndPatternId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:update-domain-pattern"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_PatternId"}], "requestBody": {"$ref": "#/components/requestBodies/Environment_Service_API_UpdateDomainPatternRequest"}, "responses": {"202": {"description": "Domain pattern update initiated.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The domain pattern update is being applied to all associated sites in this environment.", "description": "Confirmation message that the domain pattern update is being applied."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111"}}, "message": "The domain pattern update is being applied to all associated sites in this environment."}}}}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "delete": {"summary": "Deletes a domain pattern for the specified environment. Engineering role only.", "operationId": "deleteDomainPatternByEnvironmentIdAndPatternId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:delete-domain-pattern"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_PatternId"}], "responses": {"202": {"description": "Domain pattern deletion initiated. The 202 covers two async operations: (1) removal of the pattern record and (2) a bulk cleanup that disassociates any URLs already generated from this pattern on all associated site instances in the environment. Both operations complete before the final settled state is observable.\n", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The domain pattern is being removed from all associated sites in this environment.", "description": "Confirmation message that the domain pattern is being removed."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111"}}, "message": "The domain pattern is being removed from all associated sites in this environment."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/ssh-keys": {"get": {"summary": "Gets a list of SSH keys.", "description": "Gets a list of all SSH keys accessible to the requester. Each key includes\na `user_id` field identifying the owner.\n\nTo look up the owner of an SSH key by fingerprint or public key, apply a\nmandatory filter: `GET /ssh-keys?filter=fingerprint%3D` or\n`GET /ssh-keys?filter=public_key%3D`. The matching key(s) will\ninclude the `user_id` of the owner.\n\nFilterable fields:\n* `label`\n* `fingerprint`\n* `public_key`\n* `user_id`\n\nSortable fields:\n* `label`\n", "operationId": "getSshKeys", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "ssh-keys:list"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "ssh-key-service"}}, "tags": ["SSH Keys"], "parameters": [{"$ref": "#/components/parameters/SSH_Key_Service_API_Offset"}, {"$ref": "#/components/parameters/SSH_Key_Service_API_Limit"}, {"$ref": "#/components/parameters/SSH_Key_Service_API_Filter"}, {"$ref": "#/components/parameters/SSH_Key_Service_API_Sort"}], "responses": {"200": {"$ref": "#/components/responses/SSH_Key_Service_API_SshKeyCollection"}, "400": {"$ref": "#/components/responses/SSH_Key_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/SSH_Key_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/SSH_Key_Service_API_ForbiddenError"}, "500": {"$ref": "#/components/responses/SSH_Key_Service_API_InternalServerError"}}, "security": [{"SSH_Key_Service_API_BearerAuth": []}]}, "post": {"summary": "Installs a new SSH key for the current user.", "description": "Installs a new SSH key for the current user.", "operationId": "createSshKey", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "ssh-keys:create"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "ssh-key-service"}}, "tags": ["SSH Keys"], "requestBody": {"$ref": "#/components/requestBodies/SSH_Key_Service_API_SshKeyRequestBody"}, "responses": {"202": {"description": "Accepted", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Added SSH key.", "description": "Confirmation message."}}}]}, "example": {"message": "Added SSH key.", "_links": {"self": {"href": "https://api.acquia.com/v3/ssh-keys/981b7910-2fe9-11e9-b210-d663bd873d93"}}}}}}, "400": {"$ref": "#/components/responses/SSH_Key_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/SSH_Key_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/SSH_Key_Service_API_ForbiddenError"}, "409": {"$ref": "#/components/responses/SSH_Key_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/SSH_Key_Service_API_InternalServerError"}}, "security": [{"SSH_Key_Service_API_BearerAuth": []}]}}, "/ssh-keys/{sshKeyId}": {"get": {"summary": "Gets an SSH key.", "description": "Gets an SSH key by SSH Key ID.", "operationId": "findSshKeyBySshKeyId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "ssh-keys:find"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "ssh-key-service"}}, "tags": ["SSH Keys"], "parameters": [{"$ref": "#/components/parameters/SSH_Key_Service_API_SshKeyId"}], "responses": {"200": {"$ref": "#/components/responses/SSH_Key_Service_API_SshKey"}, "401": {"$ref": "#/components/responses/SSH_Key_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/SSH_Key_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/SSH_Key_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/SSH_Key_Service_API_InternalServerError"}}, "security": [{"SSH_Key_Service_API_BearerAuth": []}]}, "delete": {"summary": "Deletes an SSH key.", "description": "Deletes an SSH key by SSH Key ID.", "operationId": "deleteSshKeyBySshKeyId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "ssh-keys:delete"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "ssh-key-service"}}, "tags": ["SSH Keys"], "parameters": [{"$ref": "#/components/parameters/SSH_Key_Service_API_SshKeyId"}], "responses": {"202": {"description": "Accepted", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Removed SSH key.", "description": "Confirmation message."}}}]}, "example": {"message": "Removed SSH key.", "_links": {"self": {"href": "https://api.acquia.com/v3/ssh-keys/1acbb1a5-e864-4b8e-a3f9-b1ed462afd25"}}}}}}, "401": {"$ref": "#/components/responses/SSH_Key_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/SSH_Key_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/SSH_Key_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/SSH_Key_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/SSH_Key_Service_API_InternalServerError"}}, "security": [{"SSH_Key_Service_API_BearerAuth": []}]}}, "/sites": {"get": {"summary": "Retrieves a list of sites accessible by the user.", "operationId": "getSites", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sites:list"}}}, "tags": ["Sites"], "parameters": [{"$ref": "#/components/parameters/Site_Service_API_Offset"}, {"$ref": "#/components/parameters/Site_Service_API_Limit"}, {"$ref": "#/components/parameters/Site_Service_API_Filter"}, {"$ref": "#/components/parameters/Site_Service_API_Sort"}], "responses": {"200": {"$ref": "#/components/responses/Site_Service_API_SiteCollection"}, "400": {"$ref": "#/components/responses/Site_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Site_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Site_Service_API_ForbiddenError"}, "500": {"$ref": "#/components/responses/Site_Service_API_InternalServerError"}}, "security": [{"Site_Service_API_BearerAuth": []}]}, "post": {"summary": "Creates a site for a codebase.", "operationId": "createSite", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sites:create"}}}, "tags": ["Sites"], "requestBody": {"$ref": "#/components/requestBodies/Site_Service_API_CreateSiteRequest"}, "responses": {"200": {"description": "Site created", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site creation started.", "description": "Confirmation message indicating site creation has been initiated"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890"}, "parent": {"href": "https://api.acquia.com/v3/sites"}}, "message": "Site creation started."}}}}, "400": {"$ref": "#/components/responses/Site_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Site_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Site_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Site_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Site_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Site_Service_API_InternalServerError"}}, "security": [{"Site_Service_API_BearerAuth": []}]}}, "/sites/{siteId}": {"get": {"summary": "Retrieves a site by its ID.", "operationId": "findSiteBySiteId", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sites:find"}}}, "tags": ["Sites"], "parameters": [{"$ref": "#/components/parameters/Site_Service_API_SiteId"}], "responses": {"200": {"$ref": "#/components/responses/Site_Service_API_Site"}, "401": {"$ref": "#/components/responses/Site_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Site_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Site_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Site_Service_API_InternalServerError"}}, "security": [{"Site_Service_API_BearerAuth": []}]}, "put": {"summary": "Updates a site by its ID.", "operationId": "updateSiteBySiteId", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sites:update"}}}, "tags": ["Sites"], "parameters": [{"$ref": "#/components/parameters/Site_Service_API_SiteId"}], "requestBody": {"$ref": "#/components/requestBodies/Site_Service_API_UpdateSiteRequest"}, "responses": {"200": {"description": "Site update accepted", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site update started.", "description": "Confirmation message indicating site update has been initiated"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites/12345678-1234-1234-1234-123456789012"}}, "message": "Site update started."}}}}, "400": {"$ref": "#/components/responses/Site_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Site_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Site_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Site_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Site_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Site_Service_API_InternalServerError"}}, "security": [{"Site_Service_API_BearerAuth": []}]}, "delete": {"summary": "Deletes a site by its ID.", "operationId": "deleteSiteBySiteId", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sites:delete"}}}, "tags": ["Sites"], "parameters": [{"$ref": "#/components/parameters/Site_Service_API_SiteId"}], "responses": {"202": {"description": "Site deletion accepted", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site deleted.", "description": "Confirmation message indicating the site has been deleted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites/550e8400-e29b-41d4-a716-446655440002"}}, "message": "Site deleted."}}}}, "401": {"$ref": "#/components/responses/Site_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Site_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Site_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Site_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Site_Service_API_InternalServerError"}}, "security": [{"Site_Service_API_BearerAuth": []}]}}, "/sites/{siteId}/actions/duplicate": {"post": {"summary": "Duplicates a site from another given site.", "operationId": "duplicateSiteBySiteId", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sites:duplicate"}}}, "tags": ["Sites"], "parameters": [{"$ref": "#/components/parameters/Site_Service_API_SiteId"}], "requestBody": {"$ref": "#/components/requestBodies/Site_Service_API_DuplicateSiteRequest"}, "responses": {"202": {"description": "Site duplication started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site duplication started.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890"}, "parent": {"href": "https://api.acquia.com/v3/sites"}}, "message": "Site duplication started."}}}}, "400": {"$ref": "#/components/responses/Site_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Site_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Site_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Site_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Site_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Site_Service_API_InternalServerError"}}, "security": [{"Site_Service_API_BearerAuth": []}]}}, "/sites/{siteId}/actions/recover": {"post": {"summary": "Recovers a site that is scheduled for deletion", "operationId": "recoverSiteBySiteId", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sites:recover"}}}, "tags": ["Sites"], "parameters": [{"$ref": "#/components/parameters/Site_Service_API_SiteId"}], "responses": {"202": {"description": "Site recovery started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site recovery started.", "description": "Confirmation message indicating the site recovery has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites/11111111-1111-1111-1111-111111111111"}, "parent": {"href": "https://api.acquia.com/v3/sites"}}, "message": "Site recovery started."}}}}, "401": {"$ref": "#/components/responses/Site_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Site_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Site_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Site_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Site_Service_API_InternalServerError"}}, "security": [{"Site_Service_API_BearerAuth": []}]}}, "/sites/{siteId}/actions/schedule-delete": {"post": {"summary": "Schedules a site for deletion", "operationId": "scheduleDeleteSiteBySiteId", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sites:schedule-delete"}}}, "tags": ["Sites"], "parameters": [{"$ref": "#/components/parameters/Site_Service_API_SiteId"}], "responses": {"202": {"description": "Site deletion scheduled", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site deletion scheduled.", "description": "Confirmation message indicating the site deletion has been scheduled."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites/550e8400-e29b-41d4-a716-446655440002"}, "parent": {"href": "https://api.acquia.com/v3/sites"}}, "message": "Site deletion scheduled."}}}}, "401": {"$ref": "#/components/responses/Site_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Site_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Site_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Site_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Site_Service_API_InternalServerError"}}, "security": [{"Site_Service_API_BearerAuth": []}]}}, "/codebases/{codebaseId}/sites": {"get": {"summary": "Retrieves a list of sites associated with a codebase.", "operationId": "getSitesByCodebaseId", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:list-sites"}}}, "tags": ["Sites"], "parameters": [{"$ref": "#/components/parameters/Site_Service_API_CodebaseId"}, {"$ref": "#/components/parameters/Site_Service_API_Offset"}, {"$ref": "#/components/parameters/Site_Service_API_Limit"}, {"$ref": "#/components/parameters/Site_Service_API_Filter"}, {"$ref": "#/components/parameters/Site_Service_API_Sort"}], "responses": {"200": {"$ref": "#/components/responses/Site_Service_API_SiteCollection"}, "400": {"$ref": "#/components/responses/Site_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Site_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Site_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Site_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Site_Service_API_InternalServerError"}}, "security": [{"Site_Service_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionId}/sites": {"get": {"summary": "Retrieves a list of sites associated with a subscription.", "operationId": "getSitesBySubscriptionId", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:list-sites"}}}, "tags": ["Sites"], "parameters": [{"$ref": "#/components/parameters/Site_Service_API_SubscriptionId"}, {"$ref": "#/components/parameters/Site_Service_API_Offset"}, {"$ref": "#/components/parameters/Site_Service_API_Limit"}, {"$ref": "#/components/parameters/Site_Service_API_Filter"}, {"$ref": "#/components/parameters/Site_Service_API_Sort"}], "responses": {"200": {"$ref": "#/components/responses/Site_Service_API_SiteCollection"}, "400": {"$ref": "#/components/responses/Site_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Site_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Site_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Site_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Site_Service_API_InternalServerError"}}, "security": [{"Site_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/sites": {"get": {"summary": "Retrieves a list of sites associated with an environment.", "operationId": "getSitesByEnvironmentId", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:list-sites"}}}, "tags": ["Sites"], "parameters": [{"$ref": "#/components/parameters/Site_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Site_Service_API_Offset"}, {"$ref": "#/components/parameters/Site_Service_API_Limit"}, {"$ref": "#/components/parameters/Site_Service_API_Filter"}, {"$ref": "#/components/parameters/Site_Service_API_Sort"}], "responses": {"200": {"$ref": "#/components/responses/Site_Service_API_SiteCollection"}, "400": {"$ref": "#/components/responses/Site_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Site_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Site_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Site_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Site_Service_API_InternalServerError"}}, "security": [{"Site_Service_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionId}/sso-domains": {"post": {"operationId": "createSsoDomainBySubscriptionId", "summary": "Create a new domain for federated SSO.", "tags": ["Domains"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:create-sso-domain"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_SubscriptionId"}], "requestBody": {"$ref": "#/components/requestBodies/Federated_Authentication_API_CreateSsoDomain"}, "responses": {"202": {"description": "Domain creation accepted. The domain is being added to your subscription. To complete verification, add the provided DNS TXT record and call the verify action.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Message"}, {"type": "object", "properties": {"message": {"const": "Domain creation has been accepted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-456"}}, "message": "Domain creation has been accepted."}}}}, "400": {"$ref": "#/components/responses/Federated_Authentication_API_ValidationError"}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Federated_Authentication_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}, "get": {"summary": "Return a list of domains for a subscription.", "operationId": "getSsoDomainsBySubscriptionId", "tags": ["Domains"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:list-sso-domains"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_SubscriptionId"}, {"$ref": "#/components/parameters/Federated_Authentication_API_Offset"}, {"$ref": "#/components/parameters/Federated_Authentication_API_Limit"}, {"$ref": "#/components/parameters/Federated_Authentication_API_Sort"}, {"$ref": "#/components/parameters/Federated_Authentication_API_Filter"}], "responses": {"200": {"$ref": "#/components/responses/Federated_Authentication_API_SsoDomainCollection"}, "400": {"$ref": "#/components/responses/Federated_Authentication_API_ValidationError"}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionId}/identity-providers": {"post": {"operationId": "createIdentityProviderBySubscriptionId", "summary": "Create a new Identity Provider.", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:create-identity-provider"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_SubscriptionId"}], "requestBody": {"$ref": "#/components/requestBodies/Federated_Authentication_API_CreateIdentityProvider"}, "responses": {"202": {"description": "Identity Provider creation initiated. The Identity Provider is being provisioned. Poll the Identity Provider resource to check when it becomes active.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Message"}, {"type": "object", "properties": {"message": {"const": "Identity Provider creation has been accepted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f"}}, "message": "Identity Provider creation has been accepted."}}}}, "400": {"$ref": "#/components/responses/Federated_Authentication_API_ValidationError"}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Federated_Authentication_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}, "get": {"summary": "Return a list of Identity Providers for a subscription.", "operationId": "getIdentityProvidersBySubscriptionId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:list-identity-providers"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_SubscriptionId"}, {"$ref": "#/components/parameters/Federated_Authentication_API_Offset"}, {"$ref": "#/components/parameters/Federated_Authentication_API_Limit"}, {"$ref": "#/components/parameters/Federated_Authentication_API_Sort"}, {"$ref": "#/components/parameters/Federated_Authentication_API_Filter"}], "responses": {"200": {"$ref": "#/components/responses/Federated_Authentication_API_IdentityProviderCollection"}, "400": {"$ref": "#/components/responses/Federated_Authentication_API_ValidationError"}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/sso-domains": {"get": {"summary": "Return a list of all accessible domains.", "operationId": "getSsoDomains", "tags": ["Domains"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sso-domains:list"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_Offset"}, {"$ref": "#/components/parameters/Federated_Authentication_API_Limit"}, {"$ref": "#/components/parameters/Federated_Authentication_API_Sort"}, {"$ref": "#/components/parameters/Federated_Authentication_API_Filter"}], "responses": {"200": {"$ref": "#/components/responses/Federated_Authentication_API_SsoDomainCollection"}, "400": {"$ref": "#/components/responses/Federated_Authentication_API_ValidationError"}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/sso-domains/{domainId}": {"get": {"summary": "Return details about a specific domain.", "operationId": "findSsoDomainBySsoDomainId", "tags": ["Domains"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sso-domains:find"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_SsoDomainId"}], "responses": {"200": {"$ref": "#/components/responses/Federated_Authentication_API_SsoDomain"}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}, "delete": {"summary": "Delete a domain.", "operationId": "deleteSsoDomainBySsoDomainId", "tags": ["Domains"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sso-domains:delete"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_SsoDomainId"}], "responses": {"202": {"description": "Domain deletion accepted. The domain is being deleted.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Message"}, {"type": "object", "properties": {"message": {"const": "Domain deletion has been accepted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-456"}}, "message": "Domain deletion has been accepted."}}}}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Federated_Authentication_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/sso-domains/{domainId}/actions/verify": {"post": {"summary": "Verify domain ownership via DNS TXT record.", "operationId": "verifySsoDomainBySsoDomainId", "tags": ["Domains"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sso-domains:verify"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_SsoDomainId"}], "responses": {"202": {"description": "Domain verification process initiated. The system will validate the DNS TXT record to confirm domain ownership. Poll the domain resource and check `health.code` to track progress: `202` in progress, `200` verified, `404` record not found.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Domain verification has been accepted.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-456"}}, "message": "Domain verification has been accepted."}}}}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Federated_Authentication_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/identity-providers": {"get": {"summary": "Return a list of all accessible Identity Providers.", "operationId": "getIdentityProviders", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:list"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_Offset"}, {"$ref": "#/components/parameters/Federated_Authentication_API_Limit"}, {"$ref": "#/components/parameters/Federated_Authentication_API_Sort"}, {"$ref": "#/components/parameters/Federated_Authentication_API_Filter"}], "responses": {"200": {"$ref": "#/components/responses/Federated_Authentication_API_IdentityProviderCollection"}, "400": {"$ref": "#/components/responses/Federated_Authentication_API_ValidationError"}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/identity-providers/{identityProviderId}": {"get": {"summary": "Return details about a specific Identity Provider.", "operationId": "findIdentityProviderByIdentityProviderId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:find"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_IdentityProviderId"}], "responses": {"200": {"$ref": "#/components/responses/Federated_Authentication_API_IdentityProvider"}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}, "put": {"summary": "Updates an Identity Provider.", "operationId": "updateIdentityProviderByIdentityProviderId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:update"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_IdentityProviderId"}], "requestBody": {"$ref": "#/components/requestBodies/Federated_Authentication_API_UpdateIdentityProvider"}, "responses": {"202": {"description": "Identity Provider update initiated. The Identity Provider configuration changes are being applied. Poll the Identity Provider resource to verify the changes.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Message"}, {"type": "object", "properties": {"message": {"const": "Identity Provider update has been accepted."}}}]}, "example": {"message": "Identity Provider update has been accepted.", "_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f"}}}}}}, "400": {"$ref": "#/components/responses/Federated_Authentication_API_ValidationError"}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Federated_Authentication_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}, "delete": {"summary": "Deletes an Identity Provider.", "operationId": "deleteIdentityProviderByIdentityProviderId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:delete"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_IdentityProviderId"}], "responses": {"202": {"description": "Identity Provider deletion accepted. The Identity Provider is being deleted.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Message"}, {"type": "object", "properties": {"message": {"const": "Identity Provider deletion has been accepted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f"}}, "message": "Identity Provider deletion has been accepted."}}}}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Federated_Authentication_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/identity-providers/{identityProviderId}/policies/sso": {"get": {"summary": "Get the SSO policy for an Identity Provider.", "operationId": "findIdentityProviderSSOPolicyByIdentityProviderId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:find-sso-policy"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_IdentityProviderId"}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_SsoPolicy"}, {"$ref": "#/components/schemas/Federated_Authentication_API_HalItem"}]}, "example": {"status": "disabled", "_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso"}}, "_embedded": {"domains": [{"domain_id": "dom-456", "domain": "acme.com", "subscription_id": "sub-123", "health": {"code": "200", "summary": "Verified", "details": "The DNS TXT record has been confirmed and the domain is verified."}, "verification_record": {"type": "TXT", "host": "_acquia-challenge.acme.com", "value": "abc123def456", "health": {"code": "200", "summary": "Verified", "details": "The TXT record at _acquia-challenge.acme.com matches the expected value."}}, "verified_at": "2026-04-15T10:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-456"}, "identity_providers": {"href": "https://api.acquia.com/v3/identity-providers?filter=domain_id%3Ddom-456"}}}, {"domain_id": "dom-789", "domain": "acme.corp", "subscription_id": "sub-123", "health": {"code": "200", "summary": "Verified", "details": "The DNS TXT record has been confirmed and the domain is verified."}, "verification_record": {"type": "TXT", "host": "_acquia-challenge.acme.corp", "value": "xyz789abc123", "health": {"code": "200", "summary": "Verified", "details": "The TXT record at _acquia-challenge.acme.corp matches the expected value."}}, "verified_at": "2026-04-20T09:00:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-789"}, "identity_providers": {"href": "https://api.acquia.com/v3/identity-providers?filter=domain_id%3Ddom-789"}}}]}}}}}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}, "post": {"summary": "Create the SSO policy for an Identity Provider.", "operationId": "createIdentityProviderSSOPolicyByIdentityProviderId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:create-sso-policy"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_IdentityProviderId"}], "requestBody": {"$ref": "#/components/requestBodies/Federated_Authentication_API_CreateSsoPolicyRequest"}, "responses": {"202": {"description": "SSO policy creation initiated. The policy is being activated. Poll the SSO policy resource to verify activation.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Message"}, {"type": "object", "properties": {"message": {"const": "SSO policy creation has been accepted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso"}}, "message": "SSO policy creation has been accepted."}}}}, "400": {"$ref": "#/components/responses/Federated_Authentication_API_ValidationError"}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Federated_Authentication_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}, "put": {"summary": "Update the SSO policy for an Identity Provider.", "operationId": "updateIdentityProviderSSOPolicyByIdentityProviderId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:update-sso-policy"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_IdentityProviderId"}], "requestBody": {"$ref": "#/components/requestBodies/Federated_Authentication_API_UpdateSsoPolicyRequest"}, "responses": {"202": {"description": "SSO policy update initiated. The policy changes are being applied. Poll the SSO policy resource to verify the changes.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Message"}, {"type": "object", "properties": {"message": {"const": "SSO policy update has been accepted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso"}}, "message": "SSO policy update has been accepted."}}}}, "400": {"$ref": "#/components/responses/Federated_Authentication_API_ValidationError"}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Federated_Authentication_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}, "delete": {"summary": "Delete the SSO policy for an Identity Provider.", "operationId": "deleteIdentityProviderSSOPolicyByIdentityProviderId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:delete-sso-policy"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_IdentityProviderId"}], "responses": {"202": {"description": "SSO policy deletion initiated. The policy is being deactivated. Poll the Identity Provider resource to verify the policy has been removed.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Message"}, {"type": "object", "properties": {"message": {"const": "SSO policy deletion has been accepted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso"}}, "message": "SSO policy deletion has been accepted."}}}}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Federated_Authentication_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/identity-providers/{identityProviderId}/policies/sso/actions/enable": {"post": {"summary": "Enable the SSO policy for an Identity Provider.", "operationId": "enableIdentityProviderSSOPolicyByIdentityProviderId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:enable-sso-policy"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_IdentityProviderId"}], "responses": {"202": {"description": "SSO policy enablement initiated. The policy is being enabled and will enforce domains. Poll the SSO policy resource to verify the status change.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Message"}, {"type": "object", "properties": {"message": {"const": "SSO policy enablement has been accepted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso"}}, "message": "SSO policy enablement has been accepted."}}}}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Federated_Authentication_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/identity-providers/{identityProviderId}/policies/sso/actions/disable": {"post": {"summary": "Disable the SSO policy for an Identity Provider.", "operationId": "disableIdentityProviderSSOPolicyByIdentityProviderId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:disable-sso-policy"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_IdentityProviderId"}], "responses": {"202": {"description": "SSO policy disablement initiated. The policy is being disabled and will no longer enforce domains. Poll the SSO policy resource to verify the status change.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Message"}, {"type": "object", "properties": {"message": {"const": "SSO policy disablement has been accepted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso"}}, "message": "SSO policy disablement has been accepted."}}}}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Federated_Authentication_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/codebases": {"get": {"summary": "Retrieves a list of codebases accessible by the user.", "description": "Retrieves a paginated collection of codebases. Use the `filter` parameter to scope results by association.\n\nFilter syntax:\n- By application: `filter=application_id%3D` (e.g. `filter=application_id%3Dabc-123`)\n", "operationId": "getCodebases", "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:list"}, "mcp": {"enabled": false}, "ops": {"enabled": false}}}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "tags": ["Codebases"], "parameters": [{"$ref": "#/components/parameters/Codebase_Service_API_Offset"}, {"$ref": "#/components/parameters/Codebase_Service_API_Limit"}, {"$ref": "#/components/parameters/Codebase_Service_API_Filter"}], "responses": {"200": {"$ref": "#/components/responses/Codebase_Service_API_CodebaseCollection"}, "400": {"$ref": "#/components/responses/Codebase_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Codebase_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Codebase_Service_API_ForbiddenError"}, "500": {"$ref": "#/components/responses/Codebase_Service_API_InternalServerError"}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}}, "/codebases/{codebaseId}": {"get": {"summary": "Retrieves a codebase by its ID.", "operationId": "findCodebaseByCodebaseId", "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:find"}, "mcp": {"enabled": false}, "ops": {"enabled": false}}}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "tags": ["Codebases"], "parameters": [{"$ref": "#/components/parameters/Codebase_Service_API_CodebaseId"}], "responses": {"200": {"$ref": "#/components/responses/Codebase_Service_API_Codebase"}, "401": {"$ref": "#/components/responses/Codebase_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Codebase_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Codebase_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Codebase_Service_API_InternalServerError"}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}, "put": {"summary": "Updates a codebase by its ID.", "operationId": "updateCodebaseByCodebaseId", "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:update"}, "mcp": {"enabled": false}, "ops": {"enabled": false}}}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "tags": ["Codebases"], "parameters": [{"$ref": "#/components/parameters/Codebase_Service_API_CodebaseId"}], "requestBody": {"$ref": "#/components/requestBodies/Codebase_Service_API_UpdateCodebaseRequest"}, "responses": {"200": {"description": "Codebase updated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Codebase updated.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4"}}, "message": "Codebase updated."}}}}, "400": {"$ref": "#/components/responses/Codebase_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Codebase_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Codebase_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Codebase_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Codebase_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Codebase_Service_API_InternalServerError"}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}, "delete": {"summary": "Deletes a codebase by its ID.", "operationId": "deleteCodebaseByCodebaseId", "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:delete"}, "mcp": {"enabled": false}, "ops": {"enabled": false}}}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "tags": ["Codebases"], "parameters": [{"$ref": "#/components/parameters/Codebase_Service_API_CodebaseId"}], "responses": {"200": {"description": "Codebase deleted", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Codebase deleted.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4"}}, "message": "Codebase deleted."}}}}, "401": {"$ref": "#/components/responses/Codebase_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Codebase_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Codebase_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Codebase_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Codebase_Service_API_InternalServerError"}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}}, "/codebases/{codebaseId}/references": {"get": {"summary": "Retrieves a list of git references for a codebase.", "operationId": "getReferencesByCodebaseId", "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:list-references"}, "mcp": {"enabled": false}, "ops": {"enabled": false}}}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "tags": ["Codebase References"], "parameters": [{"$ref": "#/components/parameters/Codebase_Service_API_CodebaseId"}, {"$ref": "#/components/parameters/Codebase_Service_API_Offset"}, {"$ref": "#/components/parameters/Codebase_Service_API_Limit"}], "responses": {"200": {"$ref": "#/components/responses/Codebase_Service_API_CodebaseReferenceCollection"}, "400": {"$ref": "#/components/responses/Codebase_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Codebase_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Codebase_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Codebase_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Codebase_Service_API_InternalServerError"}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}}, "/codebases/{codebaseId}/references/{referenceName}": {"get": {"summary": "Retrieves a single git reference for a codebase.", "operationId": "findReferenceByCodebaseIdAndReferenceName", "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:find-reference"}, "mcp": {"enabled": false}, "ops": {"enabled": false}}}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "tags": ["Codebase References"], "parameters": [{"$ref": "#/components/parameters/Codebase_Service_API_CodebaseId"}, {"$ref": "#/components/parameters/Codebase_Service_API_ReferenceName"}], "responses": {"200": {"$ref": "#/components/responses/Codebase_Service_API_CodebaseReference"}, "401": {"$ref": "#/components/responses/Codebase_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Codebase_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Codebase_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Codebase_Service_API_InternalServerError"}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}}, "/codebases/{codebaseId}/domain-patterns": {"get": {"summary": "Retrieves a collection of domain patterns for the specified codebase.", "operationId": "getDomainPatternsByCodebaseId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:list-domain-patterns"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "parameters": [{"$ref": "#/components/parameters/Codebase_Service_API_CodebaseId"}, {"$ref": "#/components/parameters/Codebase_Service_API_Offset"}, {"$ref": "#/components/parameters/Codebase_Service_API_Limit"}, {"$ref": "#/components/parameters/Codebase_Service_API_Sort"}], "responses": {"200": {"$ref": "#/components/responses/Codebase_Service_API_DomainPatternCollection"}, "400": {"$ref": "#/components/responses/Codebase_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Codebase_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Codebase_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Codebase_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Codebase_Service_API_InternalServerError"}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}, "post": {"summary": "Creates a domain pattern for the specified codebase.", "operationId": "createDomainPatternByCodebaseId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:create-domain-pattern"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "parameters": [{"$ref": "#/components/parameters/Codebase_Service_API_CodebaseId"}], "requestBody": {"$ref": "#/components/requestBodies/Codebase_Service_API_CreateDomainPatternRequest"}, "responses": {"202": {"description": "Domain pattern creation initiated.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The domain pattern is being applied to all associated sites in this codebase.", "description": "Confirmation message that the domain pattern is being applied."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222"}}, "message": "The domain pattern is being applied to all associated sites in this codebase."}}}}, "400": {"$ref": "#/components/responses/Codebase_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Codebase_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Codebase_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Codebase_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Codebase_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Codebase_Service_API_InternalServerError"}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}}, "/codebases/{codebaseId}/domain-patterns/{patternId}": {"get": {"summary": "Retrieves a domain pattern by codebase ID and pattern ID.", "operationId": "findDomainPatternByCodebaseIdAndPatternId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:find-domain-pattern"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "parameters": [{"$ref": "#/components/parameters/Codebase_Service_API_CodebaseId"}, {"$ref": "#/components/parameters/Codebase_Service_API_PatternId"}], "responses": {"200": {"$ref": "#/components/responses/Codebase_Service_API_DomainPattern"}, "401": {"$ref": "#/components/responses/Codebase_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Codebase_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Codebase_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Codebase_Service_API_InternalServerError"}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}, "put": {"summary": "Updates a domain pattern for the specified codebase.", "operationId": "updateDomainPatternByCodebaseIdAndPatternId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:update-domain-pattern"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "parameters": [{"$ref": "#/components/parameters/Codebase_Service_API_CodebaseId"}, {"$ref": "#/components/parameters/Codebase_Service_API_PatternId"}], "requestBody": {"$ref": "#/components/requestBodies/Codebase_Service_API_UpdateDomainPatternRequest"}, "responses": {"202": {"description": "Domain pattern update initiated.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The domain pattern update is being applied to all associated sites in this codebase.", "description": "Confirmation message that the domain pattern update is being applied."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222"}}, "message": "The domain pattern update is being applied to all associated sites in this codebase."}}}}, "400": {"$ref": "#/components/responses/Codebase_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Codebase_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Codebase_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Codebase_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Codebase_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Codebase_Service_API_InternalServerError"}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}, "delete": {"summary": "Deletes a domain pattern for the specified codebase. Engineering role only.", "operationId": "deleteDomainPatternByCodebaseIdAndPatternId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:delete-domain-pattern"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "parameters": [{"$ref": "#/components/parameters/Codebase_Service_API_CodebaseId"}, {"$ref": "#/components/parameters/Codebase_Service_API_PatternId"}], "responses": {"202": {"description": "Domain pattern deletion initiated. The 202 covers two async operations: (1) removal of the pattern record and (2) a bulk cleanup that disassociates any URLs already generated from this pattern on all associated site instances in the codebase. Both operations complete before the final settled state is observable.\n", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The domain pattern is being removed from all associated sites in this codebase.", "description": "Confirmation message that the domain pattern is being removed."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222"}}, "message": "The domain pattern is being removed from all associated sites in this codebase."}}}}, "401": {"$ref": "#/components/responses/Codebase_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Codebase_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Codebase_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Codebase_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Codebase_Service_API_InternalServerError"}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionId}/codebases": {"get": {"summary": "Retrieves a list of codebases for a subscription.", "operationId": "getCodebasesBySubscriptionId", "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:list-codebases"}, "mcp": {"enabled": false}, "ops": {"enabled": false}}}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "tags": ["Codebases"], "parameters": [{"$ref": "#/components/parameters/Codebase_Service_API_SubscriptionId"}, {"$ref": "#/components/parameters/Codebase_Service_API_Offset"}, {"$ref": "#/components/parameters/Codebase_Service_API_Limit"}, {"$ref": "#/components/parameters/Codebase_Service_API_Filter"}], "responses": {"200": {"$ref": "#/components/responses/Codebase_Service_API_SubscriptionCodebaseCollection"}, "400": {"$ref": "#/components/responses/Codebase_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Codebase_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Codebase_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Codebase_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Codebase_Service_API_InternalServerError"}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}, "post": {"summary": "Creates a new codebase for a subscription.", "operationId": "createCodebase", "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:create-codebase"}, "mcp": {"enabled": false}, "ops": {"enabled": false}}}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "tags": ["Codebases"], "parameters": [{"$ref": "#/components/parameters/Codebase_Service_API_SubscriptionId"}], "requestBody": {"$ref": "#/components/requestBodies/Codebase_Service_API_CreateCodebaseRequest"}, "responses": {"200": {"description": "Codebase created", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Codebase created.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4"}}, "message": "Codebase created."}}}}, "400": {"$ref": "#/components/responses/Codebase_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Codebase_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Codebase_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Codebase_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Codebase_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Codebase_Service_API_InternalServerError"}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}}}, "components": {"parameters": {"Failover_Service_API_environmentId": {"$ref": "#/components/parameters/Failover_Service_API_EnvironmentId"}, "Failover_Service_API_failoverGroupId": {"$ref": "#/components/parameters/Failover_Service_API_FailoverGroupId"}, "Failover_Service_API_Offset": {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, "Failover_Service_API_Limit": {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, "Failover_Service_API_Filter": {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}, "Failover_Service_API_FailoverGroupId": {"name": "failoverGroupId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the failover group."}, "Failover_Service_API_EnvironmentId": {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}, "CDN_API_SubscriptionUuid": {"name": "subscriptionUuid", "in": "path", "required": true, "description": "The unique identifier of the subscription.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, "CDN_API_DomainName": {"name": "domainName", "in": "path", "required": true, "description": "The fully qualified domain name.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?(\\.[a-zA-Z]{2,})+$"}}, "CDN_API_EnvironmentId": {"name": "environmentId", "in": "path", "required": true, "description": "The unique identifier of the environment.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, "CDN_API_RuleSetId": {"name": "ruleSetId", "in": "path", "required": true, "description": "The unique identifier of the security rule set.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, "CDN_API_IpRuleId": {"name": "ipRuleId", "in": "path", "required": true, "description": "The unique identifier of the IP rule.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, "CDN_API_CustomRuleId": {"name": "customRuleId", "in": "path", "required": true, "description": "The unique identifier of the custom security rule.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, "CDN_API_RateLimitingRuleId": {"name": "rateLimitingRuleId", "in": "path", "required": true, "description": "The unique identifier of the rate limiting rule.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, "CDN_API_Offset": {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, "CDN_API_Limit": {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, "CDN_API_Filter": {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}, "CDN_API_Sort": {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}, "Environment_Service_API_environmentId": {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, "Environment_Service_API_siteId": {"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, "Environment_Service_API_deploymentId": {"$ref": "#/components/parameters/Environment_Service_API_DeploymentId"}, "Environment_Service_API_codebaseId": {"$ref": "#/components/parameters/Environment_Service_API_CodebaseId"}, "Environment_Service_API_domainName": {"$ref": "#/components/parameters/Environment_Service_API_DomainName"}, "Environment_Service_API_backupId": {"$ref": "#/components/parameters/Environment_Service_API_BackupId"}, "Environment_Service_API_privateNetworkId": {"$ref": "#/components/parameters/Environment_Service_API_PrivateNetworkId"}, "Environment_Service_API_patternId": {"$ref": "#/components/parameters/Environment_Service_API_PatternId"}, "Environment_Service_API_CodebaseId": {"name": "codebaseId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Codebase identifier"}, "Environment_Service_API_Offset": {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, "Environment_Service_API_Limit": {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, "Environment_Service_API_Filter": {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}, "Environment_Service_API_EnvironmentId": {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}, "Environment_Service_API_SiteId": {"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the site."}, "Environment_Service_API_PrivateNetworkId": {"name": "privateNetworkId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Private network identifier"}, "Environment_Service_API_Sort": {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}, "Environment_Service_API_DomainName": {"name": "domainName", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*$"}, "description": "The fully-qualified domain name (e.g., www.example.com)."}, "Environment_Service_API_BackupId": {"name": "backupId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Database backup identifier"}, "Environment_Service_API_DeploymentId": {"name": "deploymentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the deployment."}, "Environment_Service_API_PatternId": {"name": "patternId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the domain pattern."}, "SSH_Key_Service_API_SshKeyId": {"name": "sshKeyId", "in": "path", "description": "The SSH key's unique identifier.", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "example": "981b7910-2fe9-11e9-b210-d663bd873d93"}, "SSH_Key_Service_API_Offset": {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, "SSH_Key_Service_API_Limit": {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, "SSH_Key_Service_API_Filter": {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals (default if no operator specified)\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `label=primary` - Filter by label equals primary\n- `fingerprint=@SHA256` - Filter by fingerprint containing \"SHA256\"\n- `label=primary;fingerprint=@SHA256` - label is primary AND fingerprint contains SHA256\n- `label=primary,label=backup` - label is primary OR backup\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "label=primary;fingerprint=@SHA256"}, "SSH_Key_Service_API_Sort": {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}, "Site_Service_API_siteId": {"$ref": "#/components/parameters/Site_Service_API_SiteId"}, "Site_Service_API_codebaseId": {"$ref": "#/components/parameters/Site_Service_API_CodebaseId"}, "Site_Service_API_subscriptionId": {"$ref": "#/components/parameters/Site_Service_API_SubscriptionId"}, "Site_Service_API_environmentId": {"$ref": "#/components/parameters/Site_Service_API_EnvironmentId"}, "Site_Service_API_Offset": {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, "Site_Service_API_Limit": {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, "Site_Service_API_Filter": {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}, "Site_Service_API_Sort": {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}, "Site_Service_API_SiteId": {"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "example": "12345678-1234-1234-1234-123456789012"}, "description": "Unique identifier for the site"}, "Site_Service_API_CodebaseId": {"name": "codebaseId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "example": "550e8400-e29b-41d4-a716-446655441212"}, "description": "Unique identifier for the codebase"}, "Site_Service_API_SubscriptionId": {"name": "subscriptionId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "example": "550e8300-e29b-41d4-a716-446655441212"}, "description": "Unique identifier for the subscription"}, "Site_Service_API_EnvironmentId": {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "example": "0ebce493-9d09-479d-a9a8-138a206fa687"}, "description": "Unique identifier for the environment"}, "Federated_Authentication_API_SubscriptionId": {"name": "subscriptionId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the subscription."}, "Federated_Authentication_API_SsoDomainId": {"name": "domainId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the domain."}, "Federated_Authentication_API_IdentityProviderId": {"name": "identityProviderId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the identity provider."}, "Federated_Authentication_API_Offset": {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, "Federated_Authentication_API_Limit": {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, "Federated_Authentication_API_Sort": {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}, "Federated_Authentication_API_Filter": {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}, "Codebase_Service_API_codebaseId": {"$ref": "#/components/parameters/Codebase_Service_API_CodebaseId"}, "Codebase_Service_API_patternId": {"$ref": "#/components/parameters/Codebase_Service_API_PatternId"}, "Codebase_Service_API_referenceName": {"$ref": "#/components/parameters/Codebase_Service_API_ReferenceName"}, "Codebase_Service_API_subscriptionId": {"$ref": "#/components/parameters/Codebase_Service_API_SubscriptionId"}, "Codebase_Service_API_Offset": {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, "Codebase_Service_API_Limit": {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, "Codebase_Service_API_Filter": {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}, "Codebase_Service_API_CodebaseId": {"name": "codebaseId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the codebase."}, "Codebase_Service_API_ReferenceName": {"name": "referenceName", "in": "path", "required": true, "description": "Name of the git reference (branch or tag). Slashes must be URL-encoded as `%2F` in the path (e.g., `feature%2Fbranch-name`).", "schema": {"type": "string", "pattern": "^[^/]+$"}}, "Codebase_Service_API_Sort": {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}, "Codebase_Service_API_PatternId": {"name": "patternId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the domain pattern."}, "Codebase_Service_API_SubscriptionId": {"name": "subscriptionId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the subscription"}}, "responses": {"Failover_Service_API_ForbiddenError": {"description": "Forbidden", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Failover_Service_API_ForbiddenError"}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "Failover_Service_API_InternalServerError": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Failover_Service_API_InternalServerError"}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}, "Failover_Service_API_NotFoundError": {"description": "Not Found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Failover_Service_API_NotFoundError"}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "Failover_Service_API_UnauthorizedError": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Failover_Service_API_UnauthorizedError"}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "Failover_Service_API_InvalidOperationError": {"description": "Conflict", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Failover_Service_API_InvalidOperationError"}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "Failover_Service_API_FailoverGroupCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_HalCollection"}, {"$ref": "#/components/schemas/Failover_Service_API_PaginatedCollection"}, {"$ref": "#/components/schemas/Failover_Service_API_FilteredCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_FailoverGroup"}, {"$ref": "#/components/schemas/Failover_Service_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"failover_group_collection": {"summary": "Failover group collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/failover-groups?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/failover-groups?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/failover-groups?limit=2&offset=0{&filter}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", "name": "Primary Failover Group", "status": "normal", "pairs": [{"service_name": "my-application-service", "primary_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "failover_id": "f1e2d3c4-b5a6-7890-fedc-ba9876543210"}], "_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901"}}}]}}}}}}}, "Failover_Service_API_FailoverGroup": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_FailoverGroup"}, {"$ref": "#/components/schemas/Failover_Service_API_HalItem"}]}, "example": {"id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", "name": "Primary Failover Group", "status": "normal", "pairs": [{"service_name": "my-application-service", "primary_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "failover_id": "f1e2d3c4-b5a6-7890-fedc-ba9876543210"}], "_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901"}}}}}, "links": {"self": {"operationId": "findFailoverGroupByFailoverGroupId", "parameters": {"failoverGroupId": "$request.path.failoverGroupId"}}}}, "Failover_Service_API_MultiRegionFailoverStatus": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_MultiRegionFailoverStatus"}, {"$ref": "#/components/schemas/Failover_Service_API_HalItem"}]}, "example": {"is_enabled": true, "failover_group_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", "is_traffic_failed_over": false, "_links": {"self": {"href": "https://api.acquia.com/v3/environments/a1b2c3d4-e5f6-7890-abcd-ef1234567890/multi-region-failover"}}}}}, "links": {"self": {"operationId": "findMultiRegionFailoverByEnvironmentId", "parameters": {"environmentId": "$request.path.environmentId"}}}}, "Failover_Service_API_CreateFailoverGroupResponse": {"description": "Failover group creation initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Failover group creation has been initiated.", "description": "Confirmation message that the failover group creation has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901"}}, "message": "Failover group creation has been initiated."}}}}, "Failover_Service_API_DeleteFailoverGroupResponse": {"description": "Failover group deletion initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Failover group deletion has been initiated.", "description": "Confirmation message that the failover group deletion has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901"}}, "message": "Failover group deletion has been initiated."}}}}, "Failover_Service_API_FailoverGroupFailoverResponse": {"description": "Failover group failover initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Failover group failover initiated.", "description": "Confirmation message that the failover group failover has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901"}}, "message": "Failover group failover initiated."}}}}, "Failover_Service_API_FailoverGroupRevertFailoverResponse": {"description": "Failover group revert failover initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Failover group revert failover initiated.", "description": "Confirmation message that the failover group revert failover has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901"}}, "message": "Failover group revert failover initiated."}}}}, "Failover_Service_API_FailoverGroupSyncResponse": {"description": "Failover group sync initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Failover group sync initiated.", "description": "Confirmation message that the failover group sync has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901"}}, "message": "Failover group sync initiated."}}}}, "Failover_Service_API_SaveMultiRegionFailoverResponse": {"description": "Multi-region failover enable initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Multi-region failover enable has been initiated.", "description": "Confirmation message that multi-region failover enable has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/a1b2c3d4-e5f6-7890-abcd-ef1234567890/multi-region-failover"}}, "message": "Multi-region failover enable has been initiated."}}}}, "Failover_Service_API_DeleteMultiRegionFailoverResponse": {"description": "Multi-region failover disable initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Multi-region failover disable has been initiated.", "description": "Confirmation message that multi-region failover disable has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/a1b2c3d4-e5f6-7890-abcd-ef1234567890/multi-region-failover"}}, "message": "Multi-region failover disable has been initiated."}}}}, "Failover_Service_API_ValidationError": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Failover_Service_API_ValidationError"}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "API_Specs_API_InternalServerError": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/API_Specs_API_InternalServerError"}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}, "CDN_API_ValidationError": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CDN_API_ValidationError"}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "CDN_API_UnauthorizedError": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CDN_API_UnauthorizedError"}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "CDN_API_ForbiddenError": {"description": "Forbidden", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CDN_API_ForbiddenError"}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "CDN_API_NotFoundError": {"description": "Not Found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CDN_API_NotFoundError"}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "CDN_API_InvalidOperationError": {"description": "Conflict", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CDN_API_InvalidOperationError"}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "CDN_API_InternalServerError": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CDN_API_InternalServerError"}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}, "CDN_API_DomainCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_HalCollection"}, {"$ref": "#/components/schemas/CDN_API_PaginatedCollection"}, {"$ref": "#/components/schemas/CDN_API_FilteredCollection"}, {"$ref": "#/components/schemas/CDN_API_SortedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Domain"}, {"$ref": "#/components/schemas/CDN_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"domains_response": {"summary": "Domain collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=0{&sort}", "templated": true}, "next": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=2"}}, "count": 2, "total": 50, "pagination": {"total": 50, "limit": 2, "offset": 0}, "_embedded": {"items": [{"domain": "example.com", "subscription_uuid": "12345678-1234-1234-1234-123456789012", "environment_id": "0c3f0f5f-5727-4838-9459-2d90ee1cf7c1", "application_name": "my-application", "status": "configured", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-20T15:45:00Z", "ownership_validation_cname": "_acme-challenge.example.com", "bandwidth_usage_tb": 1.25, "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains/example.com"}}}, {"domain": "test.example.org", "subscription_uuid": "12345678-1234-1234-1234-123456789012", "environment_id": "1d4f1f6f-6838-5949-a560-3e01ff2cf8d2", "application_name": "test-application", "status": "connecting-to-edge", "created_at": "2024-01-18T08:15:00Z", "ownership_validation_cname": "_acme-challenge.example.com", "bandwidth_usage_tb": 1.25, "updated_at": "2024-01-18T08:15:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains/test.example.org"}}}]}}}}}}}, "CDN_API_Domain": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Domain"}, {"$ref": "#/components/schemas/CDN_API_HalItem"}]}, "example": {"domain": "example.com", "subscription_uuid": "12345678-1234-1234-1234-123456789012", "environment_id": "0c3f0f5f-5727-4838-9459-2d90ee1cf7c1", "application_name": "my-application", "status": "configured", "ownership_validation_cname": "_acme-challenge.example.com", "bandwidth_usage_tb": 1.25, "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-20T15:45:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains/example.com"}}}}}, "links": {"self": {"operationId": "findDomainBySubscriptionUuidAndDomainName", "parameters": {"subscriptionUuid": "$request.path.subscriptionUuid", "domainName": "$request.path.domainName"}}}}, "CDN_API_DomainCdnProvisioningAccepted": {"description": "Accepted - Provisioning in progress", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The domain provisioning has been started.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains/example.com"}}, "message": "The domain provisioning has been started."}}}}, "CDN_API_DomainCdnDeprovisioningAccepted": {"description": "Accepted - Deprovisioning in progress", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The domain deprovisioning has been started.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains/example.com"}}, "message": "The domain deprovisioning has been started."}}}}, "CDN_API_PurgeAccepted": {"description": "Accepted - Purge request submitted", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The purge request has been submitted.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/0c3f0f5f-5727-4838-9459-2d90ee1cf7c1/actions/purge-cdn"}}, "message": "The purge request has been submitted."}}}}, "CDN_API_SecurityRuleSet": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_SecurityRuleSet"}, {"$ref": "#/components/schemas/CDN_API_HalItem"}]}, "example": {"id": 1, "name": "OWASP Top 10", "is_enabled": true, "description": "OWASP Top 10 security ruleset", "type": "owasp", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rulesets/1"}}}}}, "links": {"self": {"operationId": "findSecurityRuleSetBySubscriptionUuidAndRuleSetId", "parameters": {"subscriptionUuid": "$request.path.subscriptionUuid", "ruleSetId": "$request.path.ruleSetId"}}}}, "CDN_API_SecurityRuleSetCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_HalCollection"}, {"$ref": "#/components/schemas/CDN_API_PaginatedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/CDN_API_SecurityRuleSet"}, {"$ref": "#/components/schemas/CDN_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"security_rule_sets_response": {"summary": "Security rulesets collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rulesets?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rulesets?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rulesets?limit=2{&offset}", "templated": true}}, "count": 2, "total": 5, "pagination": {"total": 5, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": 123, "name": "OWASP Core Ruleset", "is_enabled": true, "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rulesets/123"}}}, {"id": 456, "name": "Bot Protection", "is_enabled": false, "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rulesets/456"}}}]}}}}}}}, "CDN_API_SecurityRuleSetUpdated": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The security ruleset has been updated.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rulesets/123"}}, "message": "The security ruleset has been updated."}}}}, "CDN_API_IpRule": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_IpRule"}, {"$ref": "#/components/schemas/CDN_API_HalItem"}]}, "example": {"id": 101, "display_name": "Block office VPN", "action": "allow", "description": "Allow traffic from the office VPN", "ips": ["203.0.113.0/24"], "created_at": "2026-05-01T12:00:00Z", "updated_at": "2026-05-10T09:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules/101"}}}}}, "links": {"self": {"operationId": "findIpRuleBySubscriptionUuidAndIpRuleId", "parameters": {"subscriptionUuid": "$request.path.subscriptionUuid", "ipRuleId": "$request.path.ipRuleId"}}}}, "CDN_API_IpRuleCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_HalCollection"}, {"$ref": "#/components/schemas/CDN_API_PaginatedCollection"}, {"$ref": "#/components/schemas/CDN_API_FilteredCollection"}, {"$ref": "#/components/schemas/CDN_API_SortedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/CDN_API_IpRule"}, {"$ref": "#/components/schemas/CDN_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"ip_rules_response": {"summary": "IP rules collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules?limit=2&offset=0{&sort}", "templated": true}, "next": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules?offset=2&limit=2"}}, "count": 2, "total": 5, "pagination": {"total": 5, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": 101, "display_name": "Block office IPs", "action": "block", "description": "Blocks office IP ranges.", "ips": ["192.0.2.10", "198.51.100.0/24"], "created_at": "2026-05-01T12:00:00Z", "updated_at": "2026-05-10T09:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules/101"}}}, {"id": 102, "display_name": "Allow support", "action": "allow", "description": "Allows support traffic.", "ips": ["203.0.113.5"], "created_at": "2026-05-02T08:15:00Z", "updated_at": "2026-05-11T13:45:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules/102"}}}]}}}}}}}, "CDN_API_IpRuleCreated": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The IP rule has been created.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules/101"}}, "message": "The IP rule has been created."}}}}, "CDN_API_IpRuleUpdated": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The IP rule has been updated.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules/101"}}, "message": "The IP rule has been updated."}}}}, "CDN_API_IpRuleDeleted": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The IP rule has been deleted.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules/101"}}, "message": "The IP rule has been deleted."}}}}, "CDN_API_CustomRuleCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_HalCollection"}, {"$ref": "#/components/schemas/CDN_API_PaginatedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/CDN_API_CustomRule"}, {"$ref": "#/components/schemas/CDN_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"custom_rules_response": {"summary": "Custom rules collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules?limit=2{&offset}", "templated": true}}, "count": 2, "total": 5, "pagination": {"total": 5, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": 301, "display_name": "Block bad bots", "action": "block", "priority": 1, "domains": ["example.com"], "paths": ["/api/*"], "targets": [{"attribute": "source-ip", "criteria": "range", "value": {"from": "10.0.0.0", "to": "10.0.0.255"}}], "created_at": "2026-05-01T12:00:00Z", "updated_at": "2026-05-10T09:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules/301"}}}, {"id": 302, "display_name": "Alert login scans", "action": "alert", "priority": 2, "domains": ["shop.example.com"], "paths": ["/login"], "targets": [{"attribute": "path", "criteria": "equals", "value": {"values": ["/login"]}}], "created_at": "2026-05-02T08:15:00Z", "updated_at": "2026-05-11T13:45:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules/302"}}}]}}}}}}}, "CDN_API_CustomRule": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_CustomRule"}, {"$ref": "#/components/schemas/CDN_API_HalItem"}]}, "example": {"id": 301, "display_name": "Block bad bots", "action": "block", "priority": 1, "domains": ["example.com"], "paths": ["/api/*"], "targets": [{"attribute": "source-ip", "criteria": "range", "value": {"from": "10.0.0.0", "to": "10.0.0.255"}}, {"attribute": "header", "criteria": "equals", "value": {"key_value_pairs": [{"key": "User-Agent", "value": "BadBot/1.0"}]}}], "created_at": "2026-05-01T12:00:00Z", "updated_at": "2026-05-10T09:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules/301"}}}}}, "links": {"self": {"operationId": "findCustomRuleBySubscriptionUuidAndCustomRuleId", "parameters": {"subscriptionUuid": "$request.path.subscriptionUuid", "customRuleId": "$request.path.customRuleId"}}}}, "CDN_API_CustomRuleCreated": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The custom security rule has been created.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules/301"}}, "message": "The custom security rule has been created."}}}}, "CDN_API_CustomRuleDeleted": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The custom security rule has been deleted.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules/301"}}, "message": "The custom security rule has been deleted."}}}}, "CDN_API_RateLimitingRuleCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_HalCollection"}, {"$ref": "#/components/schemas/CDN_API_PaginatedCollection"}, {"$ref": "#/components/schemas/CDN_API_FilteredCollection"}, {"$ref": "#/components/schemas/CDN_API_SortedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/CDN_API_RateLimitingRule"}, {"$ref": "#/components/schemas/CDN_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"rate_limiting_rules_response": {"summary": "Rate limiting rules collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules?limit=2&offset=0{&sort}", "templated": true}, "next": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules?limit=2&offset=2"}}, "count": 2, "total": 4, "pagination": {"total": 4, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": 501, "display_name": "Rate Rule 1", "action": "alert", "rate_limit_per_minute": "lenient", "domains": ["example.com"], "created_at": "2026-05-01T12:00:00Z", "updated_at": "2026-05-10T09:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules/501"}}}, {"id": 502, "display_name": "Rate Rule 2", "action": "block", "rate_limit_per_minute": "strict", "domains": ["shop.example.com"], "created_at": "2026-05-02T08:15:00Z", "updated_at": "2026-05-11T13:45:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules/502"}}}]}}}}}}}, "CDN_API_RateLimitingRule": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_RateLimitingRule"}, {"$ref": "#/components/schemas/CDN_API_HalItem"}]}, "example": {"id": 501, "display_name": "Rate Rule 1", "action": "alert", "rate_limit_per_minute": "lenient", "domains": ["example.com"], "created_at": "2026-05-01T12:00:00Z", "updated_at": "2026-05-10T09:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules/501"}}}}}, "links": {"self": {"operationId": "findRateLimitingRuleBySubscriptionUuidAndRateLimitingRuleId", "parameters": {"subscriptionUuid": "$request.path.subscriptionUuid", "rateLimitingRuleId": "$request.path.rateLimitingRuleId"}}}}, "CDN_API_RateLimitingRuleCreated": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The rate limiting rule has been created.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules/501"}}, "message": "The rate limiting rule has been created."}}}}, "CDN_API_RateLimitingRuleUpdated": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The rate limiting rule has been updated.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules/501"}}, "message": "The rate limiting rule has been updated."}}}}, "CDN_API_RateLimitingRuleDeleted": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The rate limiting rule has been deleted.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules/501"}}, "message": "The rate limiting rule has been deleted."}}}}, "CDN_API_CustomRuleUpdated": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The custom security rule has been updated.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules/301"}}, "message": "The custom security rule has been updated."}}}}, "Environment_Service_API_ForbiddenError": {"description": "Forbidden", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Environment_Service_API_ForbiddenError"}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "Environment_Service_API_InternalServerError": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Environment_Service_API_InternalServerError"}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}, "Environment_Service_API_NotFoundError": {"description": "Not Found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Environment_Service_API_NotFoundError"}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "Environment_Service_API_UnauthorizedError": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Environment_Service_API_UnauthorizedError"}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "Environment_Service_API_ValidationError": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Environment_Service_API_ValidationError"}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "Environment_Service_API_InvalidOperationError": {"description": "Conflict", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Environment_Service_API_InvalidOperationError"}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "Environment_Service_API_DeploymentCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_PaginatedCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_FilteredCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_SortedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Deployment"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"deployment_response": {"summary": "Deployment collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=2"}, "limit": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?offset=2{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=2{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=2{&sort}", "templated": true}, "prev": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=0"}, "next": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=4"}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3", "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", "status": "done", "code_reference": "tags/v1.0.0", "run_hooks": true, "hooks_argument": null, "sender_id": null, "created_at": "2025-04-01T13:01:06.603Z", "started_at": "2025-04-01T13:01:10.123Z", "completed_at": "2025-04-01T13:05:00.000Z", "_links": {"self": {"href": "https://api.acquia.com/v3/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3"}, "environment": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323"}}}, {"id": "f1dae0f8-67c7-5d1e-cbe1-1f7604f77de4", "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", "status": "failed", "code_reference": "tags/v0.9.0", "run_hooks": false, "hooks_argument": null, "sender_id": null, "created_at": "2025-03-28T09:15:00.000Z", "started_at": "2025-03-28T09:15:05.000Z", "completed_at": "2025-03-28T09:18:00.000Z", "_links": {"self": {"href": "https://api.acquia.com/v3/deployments/f1dae0f8-67c7-5d1e-cbe1-1f7604f77de4"}, "environment": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323"}}}]}}}}}}}, "Environment_Service_API_Deployment": {"description": "Deployment details", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Deployment"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}, "example": {"id": "e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3", "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", "status": "started", "code_reference": "tags/v1.0.0", "run_hooks": true, "hooks_argument": "--skip-db-update", "created_at": "2025-04-01T13:01:06.603Z", "started_at": "2025-04-01T13:01:10.123Z", "completed_at": null, "sender_id": null, "logs": null, "_links": {"self": {"href": "https://api.acquia.com/v3/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3"}, "environment": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323"}}}}}, "links": {"self": {"operationId": "findDeploymentByDeploymentId", "parameters": {"deploymentId": "$request.path.deploymentId"}}}}, "Environment_Service_API_CodeDeploy": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_CodeDeploy"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}, "example": {"concurrency": 5, "_links": {"self": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/code-deploy"}}}}}, "links": {"self": {"operationId": "findCodeDeployByEnvironmentId", "parameters": {"environmentId": "$request.path.environmentId"}}}}, "Environment_Service_API_Environment": {"description": "Environment details", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Environment"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"codebase": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_EmbeddedCodebase"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}}}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc"}, "codebase": {"href": "https://api.acquia.com/v3/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323"}}, "id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", "name": "environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc", "label": "Environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc", "description": "Description of 3e8ecbec-ea7c-4260-8414-ef2938c859bc", "status": "normal", "flags": {"production": false, "protection_mode": false}, "properties": {"version": "8.3", "max_execution_time": 10, "memory_limit": 192, "apcu": 32, "client_max_body_size": 192, "max_input_vars": 1000, "max_post_size": 256, "memcached_limit": 128, "upload_max_filesize": 192, "operating_system": "focal"}, "reference": "tag/v3.1", "code_switch_status": "IDLE", "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", "_embedded": {"codebase": {"id": "d3f7270e-c45f-4801-9308-5e8afe84a323", "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323"}}}}}}}, "links": {"self": {"operationId": "findEnvironmentByEnvironmentId", "parameters": {"environmentId": "$request.path.environmentId"}}}}, "Environment_Service_API_EnvironmentCollection": {"description": "Environment collection", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_PaginatedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Environment"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2{&offset}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", "name": "dev", "label": "Dev", "description": "Development environment", "status": "normal", "reference": "branch/main", "code_switch_status": "IDLE", "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", "flags": {"production": false, "protection_mode": false}, "properties": {"version": "8.3"}, "_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc"}}}]}}}}}, "Environment_Service_API_FilterableEnvironmentCollection": {"description": "Environment collection", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_PaginatedCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_FilteredCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Environment"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2&offset=0{&filter}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", "name": "dev", "label": "Dev", "description": "Development environment", "status": "normal", "reference": "branch/main", "code_switch_status": "IDLE", "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", "flags": {"production": false, "protection_mode": false}, "properties": {"version": "8.3"}, "_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc"}}}]}}}}}, "Environment_Service_API_SiteInstance": {"description": "Site Instance details", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_SiteInstance"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323"}}, "site_id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", "status": "active", "health_status": {"code": "OK", "summary": "The health status is OK.", "details": "The site instance is active"}, "domains": ["example.com", "example-2.com"], "protection_mode": {"is_enabled": true, "is_inherited": true}}}}, "links": {"self": {"operationId": "findSiteInstanceBySiteIdAndEnvironmentId", "parameters": {"siteId": "$request.path.siteId", "environmentId": "$request.path.environmentId"}}}}, "Environment_Service_API_Domain": {"description": "Domain details", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Domain"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}, "example": {"name": "example.com", "is_managed": false, "_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com"}}}}}, "links": {"self": {"operationId": "findDomainBySiteIdAndEnvironmentIdAndDomainName", "parameters": {"siteId": "$request.path.siteId", "environmentId": "$request.path.environmentId", "domainName": "$request.path.domainName"}}}}, "Environment_Service_API_DomainCollection": {"description": "Domain collection", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_PaginatedCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_FilteredCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_SortedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Domain"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2&offset=0{&sort}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 2, "offset": 0}, "_embedded": {"items": [{"name": "example.com", "is_managed": false, "_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com"}}}]}}}}}, "Environment_Service_API_DomainStatus": {"description": "Domain DNS status details", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_DomainStatus"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}, "example": {"hostname": "example.com", "site_id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", "ip_addresses": ["203.0.113.10"], "cnames": [], "flags": {"default": false, "active": true, "dns_resolves": true, "acquia_hosted": true}, "_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com/status"}}}}}}, "Environment_Service_API_Database": {"description": "Database details", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Database"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}, "example": {"database_name": "site_dev", "database_role": "site_dev_user", "_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database"}}}}}, "links": {"self": {"operationId": "findDatabaseBySiteIdAndEnvironmentId", "parameters": {"siteId": "$request.path.siteId", "environmentId": "$request.path.environmentId"}}}}, "Environment_Service_API_DatabaseConnection": {"description": "Database connection credential details", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_DatabaseConnection"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}, "example": {"db_host": "db.example.com", "name": "site_dev", "password": "s3cr3t", "user_name": "site_dev_user", "ssh_host": "site.dev.ssh.hosted.acquia-sites.com", "_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/connection"}}}}}}, "Environment_Service_API_DatabaseBackup": {"description": "Database backup details", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_DatabaseBackup"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}, "example": {"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "database_id": "b2c3d4e5-f6a7-8901-bcde-f01234567891", "created_at": "2025-04-01T02:00:00.000Z", "type": "DAILY", "_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups/a1b2c3d4-e5f6-7890-abcd-ef1234567890"}, "download": {"href": "https://s3.amazonaws.com/acquia-backups/backup-a1b2c3d4.sql.gz?X-Amz-Expires=3600&X-Amz-Signature=abc123"}}}}}, "links": {"self": {"operationId": "findDatabaseBackupBySiteIdAndEnvironmentIdAndBackupId", "parameters": {"siteId": "$request.path.siteId", "environmentId": "$request.path.environmentId", "backupId": "$request.path.backupId"}}}}, "Environment_Service_API_DatabaseBackupCollection": {"description": "Database backup collection", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_PaginatedCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_FilteredCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_SortedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_DatabaseBackup"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2&offset=0{&sort}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "database_id": "b2c3d4e5-f6a7-8901-bcde-f01234567891", "created_at": "2025-04-01T02:00:00.000Z", "type": "DAILY", "_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups/a1b2c3d4-e5f6-7890-abcd-ef1234567890"}}}]}}}}}, "Environment_Service_API_EgressIpCollection": {"description": "Egress IP collection", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_PaginatedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_EgressIp"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/eips?limit=25&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/eips?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/eips?limit=25{&offset}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 25, "offset": 0}, "_embedded": {"items": [{"id": "eip-a1b2c3d4-e5f6-7890-abcd-ef1234567890", "status": "active", "ipv4": "203.0.113.10", "ipv6": null, "flags": {"is_primary": true}}]}}}}}, "Environment_Service_API_TrustedProxies": {"description": "Trusted proxy configuration details", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_TrustedProxies"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}, "example": {"cidrs_ipv4": ["203.0.113.0/24"], "cidrs_ipv6": [], "associated_cdns": {"cloudflare": {"label": "Cloudflare", "is_enabled": true}}, "_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/trusted-proxies"}}}}}, "links": {"self": {"operationId": "findTrustedProxiesByEnvironmentId", "parameters": {"environmentId": "$request.path.environmentId"}}}}, "Environment_Service_API_PrivateNetwork": {"description": "Private network details", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_PrivateNetwork"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}, "example": {"id": "pn-a1b2c3d4-e5f6-7890-abcd-ef1234567890", "label": "Production VPC", "_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/private-network"}}}}}, "links": {"self": {"operationId": "findPrivateNetworkByEnvironmentId", "parameters": {"environmentId": "$request.path.environmentId"}}}}, "Environment_Service_API_DomainPattern": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_DomainPattern"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}, "example": {"id": "11111111-1111-1111-1111-111111111111", "pattern": "[site-name].acme.com", "_links": {"self": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111"}}}}}, "links": {"self": {"operationId": "findDomainPatternByEnvironmentIdAndPatternId", "parameters": {"environmentId": "$request.path.environmentId", "patternId": "$request.path.patternId"}}}}, "Environment_Service_API_DomainPatternCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_PaginatedCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_SortedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_DomainPattern"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"domain_pattern_collection": {"summary": "Domain pattern collection", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns"}, "limit": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25{&offset}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25&offset=0{&sort}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 25, "offset": 0}, "_embedded": {"items": [{"id": "11111111-1111-1111-1111-111111111111", "pattern": "[site-name].acme.com", "_links": {"self": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111"}}}]}}}, "domain_pattern_collection_empty": {"summary": "Empty domain pattern collection", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns"}, "limit": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25{&offset}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25&offset=0{&sort}", "templated": true}}, "count": 0, "total": 0, "pagination": {"total": 0, "limit": 25, "offset": 0}, "_embedded": {"items": []}}}}}}}, "SSH_Key_Service_API_SshKeyCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"$ref": "#/components/schemas/SSH_Key_Service_API_SshKeys"}, "examples": {"ssh_keys": {"summary": "SSH key collection", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/ssh-keys?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/ssh-keys?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/ssh-keys?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/ssh-keys?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/ssh-keys?limit=2&offset=0{&sort}", "templated": true}, "next": {"href": "https://api.acquia.com/v3/ssh-keys?limit=2&offset=2"}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "1acbb1a5-e864-4b8e-a3f9-b1ed462afd25", "label": "primary", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQChwPHzTTDKDpSbpa2+d22LcbQmsw92eLsUK3Fmei1fiGDkd34NsYCN8m7lsi3NbvdMS83CtPQPWiCveYPzFs1/hHc4PYj8opD2CNnr5iWVVbyaulCYHCgVv4aB/ojcexg8q483A4xJeF15TiCr/gu34rK6ucTvC/tn/rCwJBudczvEwt0klqYwv8Cl/ytaQboSuem5KgSjO3lMrb6CWtfSNhE43ZOw+UBFBqxIninN868vGMkIv9VY34Pwj54rPn/ItQd6Ef4B0KHHaGmzK0vfP+AK7FxNMoHnj3iYT33KZNqtDozdn5tYyH/bThPebEtgqUn+/w5l6wZIC/8zzvls/127ngHk+jNa0PlNyS2TxhPUK4NaPHIEnnrlp07JEYC4ImcBjaYCWAdcTcUkcJjwZQkN4bGmyO9cjICH98SdLD/HxqzTHeaYDbAX/Hu9HfaBb5dXLWsjw3Xc6hoVnUUZbMQyfgb0KgxDLh92eNGxJkpZiL0VDNOWCxDWsNpzwhLNkLqCvI6lyxiLaUzvJAk6dPaRhExmCbU1lDO2eR0FdSwC1TEhJOT9eDIK1r2hztZKs2oa5FNFfB/IFHVWasVFC9N2h/r/egB5zsRxC9MqBLRBq95NBxaRSFng6ML5WZSw41Qi4C/JWVm89rdj2WqScDHYyAdwyyppWU4T5c9Fmw== example@example.com", "fingerprint": "SHA256:7a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8g9h0i1j2k3l4m5n6o7p8q9r0s1", "created_at": "2024-10-01T12:30:00Z", "user_id": "a47ac10b-58cc-4372-a567-0e02b2c3d479", "_links": {"self": {"href": "https://api.acquia.com/v3/ssh-keys/1acbb1a5-e864-4b8e-a3f9-b1ed462afd25"}}}, {"id": "2bcbb1a5-e864-4b8e-a3f9-b1ed462afd26", "label": "backup", "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFf2T1I1d8T1B9Q1b8pS6m2xvY3i5q8sNnU5oQwY5vS9 example@example.com", "fingerprint": "SHA256:9b8c7d6e5f4a3b2c1d0e9f8a7b6c5d4e3f2a1b0c9d8e7f6a5b4c3d2e1f0a9b8", "created_at": "2024-10-02T09:15:00Z", "user_id": "b58bd21c-69dd-5483-b678-1f13c3d4e580", "_links": {"self": {"href": "https://api.acquia.com/v3/ssh-keys/2bcbb1a5-e864-4b8e-a3f9-b1ed462afd26"}}}]}}}}}}}, "SSH_Key_Service_API_SshKey": {"description": "OK", "content": {"application/hal+json": {"schema": {"$ref": "#/components/schemas/SSH_Key_Service_API_SshKey"}, "example": {"id": "1acbb1a5-e864-4b8e-a3f9-b1ed462afd25", "label": "primary", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQChwPHzTTDKDpSbpa2+d22LcbQmsw92eLsUK3Fmei1fiGDkd34NsYCN8m7lsi3NbvdMS83CtPQPWiCveYPzFs1/hHc4PYj8opD2CNnr5iWVVbyaulCYHCgVv4aB/ojcexg8q483A4xJeF15TiCr/gu34rK6ucTvC/tn/rCwJBudczvEwt0klqYwv8Cl/ytaQboSuem5KgSjO3lMrb6CWtfSNhE43ZOw+UBFBqxIninN868vGMkIv9VY34Pwj54rPn/ItQd6Ef4B0KHHaGmzK0vfP+AK7FxNMoHnj3iYT33KZNqtDozdn5tYyH/bThPebEtgqUn+/w5l6wZIC/8zzvls/127ngHk+jNa0PlNyS2TxhPUK4NaPHIEnnrlp07JEYC4ImcBjaYCWAdcTcUkcJjwZQkN4bGmyO9cjICH98SdLD/HxqzTHeaYDbAX/Hu9HfaBb5dXLWsjw3Xc6hoVnUUZbMQyfgb0KgxDLh92eNGxJkpZiL0VDNOWCxDWsNpzwhLNkLqCvI6lyxiLaUzvJAk6dPaRhExmCbU1lDO2eR0FdSwC1TEhJOT9eDIK1r2hztZKs2oa5FNFfB/IFHVWasVFC9N2h/r/egB5zsRxC9MqBLRBq95NBxaRSFng6ML5WZSw41Qi4C/JWVm89rdj2WqScDHYyAdwyyppWU4T5c9Fmw== example@example.com", "fingerprint": "SHA256:7a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8g9h0i1j2k3l4m5n6o7p8q9r0s1", "created_at": "2024-10-01T12:30:00Z", "user_id": "a47ac10b-58cc-4372-a567-0e02b2c3d479", "_links": {"self": {"href": "https://api.acquia.com/v3/ssh-keys/1acbb1a5-e864-4b8e-a3f9-b1ed462afd25"}}}}}, "links": {"self": {"operationId": "findSshKeyBySshKeyId", "parameters": {"sshKeyId": "$request.path.sshKeyId"}}}}, "SSH_Key_Service_API_UnauthorizedError": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SSH_Key_Service_API_UnauthorizedError"}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "SSH_Key_Service_API_ForbiddenError": {"description": "Forbidden", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SSH_Key_Service_API_ForbiddenError"}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "SSH_Key_Service_API_NotFoundError": {"description": "Not Found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SSH_Key_Service_API_NotFoundError"}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "SSH_Key_Service_API_ValidationError": {"description": "Bad Request - Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SSH_Key_Service_API_ValidationError"}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required."}}}}}, "SSH_Key_Service_API_InvalidOperationError": {"description": "Conflict", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SSH_Key_Service_API_InvalidOperationError"}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "SSH_Key_Service_API_InternalServerError": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SSH_Key_Service_API_InternalServerError"}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}, "Site_Service_API_ForbiddenError": {"description": "Forbidden", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Site_Service_API_ForbiddenError"}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "Site_Service_API_InternalServerError": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Site_Service_API_InternalServerError"}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}, "Site_Service_API_InvalidOperationError": {"description": "Conflict", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Site_Service_API_InvalidOperationError"}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "Site_Service_API_NotFoundError": {"description": "Not Found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Site_Service_API_NotFoundError"}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "Site_Service_API_UnauthorizedError": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Site_Service_API_UnauthorizedError"}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "Site_Service_API_ValidationError": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Site_Service_API_ValidationError"}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "Site_Service_API_Site": {"description": "Site details", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_Site"}, {"$ref": "#/components/schemas/Site_Service_API_HalItem"}, {"type": "object", "properties": {"_links": {"properties": {"self": {"$ref": "#/components/schemas/Site_Service_API_HalLink"}, "codebase": {"$ref": "#/components/schemas/Site_Service_API_HalLink"}}}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890"}, "codebase": {"href": "https://api.acquia.com/v3/codebases/a9b8c7d6-e5f4-3210-abcd-ef9876543210"}}, "id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", "name": "mysite", "label": "My Site", "description": "This is a description of my site.", "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", "status": "ready"}}}, "links": {"self": {"operationId": "findSiteBySiteId", "parameters": {"siteId": "$request.path.siteId"}}}}, "Site_Service_API_SiteCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_HalCollection"}, {"$ref": "#/components/schemas/Site_Service_API_PaginatedCollection"}, {"$ref": "#/components/schemas/Site_Service_API_FilteredCollection"}, {"$ref": "#/components/schemas/Site_Service_API_SortedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_Site"}, {"$ref": "#/components/schemas/Site_Service_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"site_collection": {"summary": "Site collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/sites?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/sites?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/sites?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/sites?limit=2&offset=0{&sort}", "templated": true}, "next": {"href": "https://api.acquia.com/v3/sites?limit=2&offset=2"}}, "count": 2, "total": 4, "pagination": {"total": 4, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", "name": "mysite", "label": "My Site", "description": "A description of my site.", "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", "status": "ready", "_links": {"self": {"href": "https://api.acquia.com/v3/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890"}}}, {"id": "e2b3c4d5-f6a7-8901-bcde-f12345678901", "name": "anothersite", "label": "Another Site", "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", "status": "marked-for-deletion", "delete_at": "2025-01-01T00:00:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/sites/e2b3c4d5-f6a7-8901-bcde-f12345678901"}}}]}}}}}}}, "Federated_Authentication_API_IdentityProvider": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_IdentityProvider"}, {"$ref": "#/components/schemas/Federated_Authentication_API_HalItem"}]}, "example": {"identity_provider_id": "908914ec-2354-4fb1-9298-637247eccc3a", "label": "Acme Corporation Azure AD", "subscription_id": "sub-123", "idp_entity_id": "https://idp.acme.com/saml", "sp_entity_id": "https://sp.acme.com/saml", "sso_url": "https://acme.com/sso", "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", "created_at": "2026-04-15T11:00:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a"}, "sso_policy": {"href": "https://api.acquia.com/v3/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a/policies/sso"}}}}}, "links": {"self": {"operationId": "findIdentityProviderByIdentityProviderId", "parameters": {"identityProviderId": "$response.body#/identity_provider_id"}}, "update": {"operationId": "updateIdentityProviderByIdentityProviderId", "parameters": {"identityProviderId": "$response.body#/identity_provider_id"}}, "delete": {"operationId": "deleteIdentityProviderByIdentityProviderId", "parameters": {"identityProviderId": "$response.body#/identity_provider_id"}}, "enable_sso_policy": {"operationId": "enableIdentityProviderSSOPolicyByIdentityProviderId", "parameters": {"identityProviderId": "$response.body#/identity_provider_id"}}, "disable_sso_policy": {"operationId": "disableIdentityProviderSSOPolicyByIdentityProviderId", "parameters": {"identityProviderId": "$response.body#/identity_provider_id"}}}}, "Federated_Authentication_API_IdentityProviderCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_HalCollection"}, {"$ref": "#/components/schemas/Federated_Authentication_API_PaginatedCollection"}, {"$ref": "#/components/schemas/Federated_Authentication_API_FilteredCollection"}, {"$ref": "#/components/schemas/Federated_Authentication_API_SortedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_IdentityProvider"}, {"$ref": "#/components/schemas/Federated_Authentication_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"identity_provider_response": {"summary": "Identity provider collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?limit=2&offset=2"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?offset=2{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?limit=2&offset=2{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?limit=2&offset=2{&sort}", "templated": true}, "prev": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?limit=2&offset=0"}, "next": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?offset=4&limit=2"}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"identity_provider_id": "908914ec-2354-4fb1-9298-637247eccc3a", "label": "Acme Corporation Azure AD", "subscription_id": "sub-123", "idp_entity_id": "https://idp.acme.com/saml", "sp_entity_id": "https://sp.acme.com/saml", "sso_url": "https://acme.com/sso", "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", "created_at": "2026-04-15T11:00:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a"}, "sso_policy": {"href": "https://api.acquia.com/v3/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a/policies/sso"}}}, {"identity_provider_id": "123456ec-2354-4fb1-9298-637247eccc3b", "label": "Acme Research Ping Identity", "subscription_id": "sub-123", "idp_entity_id": "https://idp-research.acme.com/saml", "sp_entity_id": "https://sp-research.acme.com/saml", "sso_url": "https://research.acme.com/sso", "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", "created_at": "2026-04-20T14:20:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/123456ec-2354-4fb1-9298-637247eccc3b"}, "sso_policy": {"href": "https://api.acquia.com/v3/identity-providers/123456ec-2354-4fb1-9298-637247eccc3b/policies/sso"}}}]}}}}}}}, "Federated_Authentication_API_SsoDomain": {"description": "OK. The `_links` object always contains `self`. Additional links are state-conditional: `verify` is present when `health.code` is `202` or `404` (POST it to initiate or retry DNS TXT record verification); `identity_providers` is present when the domain is referenced by one or more Identity Provider policies (follows to a filtered list of those IdPs; when present the domain cannot be deleted \u2014 remove it from all policies first).", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_SsoDomain"}, {"$ref": "#/components/schemas/Federated_Authentication_API_HalItem"}]}, "examples": {"pending_verification": {"summary": "Domain awaiting DNS verification", "description": "A newly created domain whose DNS TXT record has not yet been confirmed. `health.code` is `202`; the `verify` link is present so the client can trigger or retry the check. `identity_providers` is absent because no policy can reference an unverified domain.", "value": {"domain_id": "dom-789", "domain": "acme.corp", "subscription_id": "sub-123", "health": {"code": "202", "summary": "Verification pending", "details": "Acquia is waiting to confirm the DNS TXT record. Ensure the record has been published and allow time for DNS propagation, then retry verification."}, "verification_record": {"type": "TXT", "host": "_acquia-challenge.acme.corp", "value": "xyz789abc123", "health": {"code": "202", "summary": "Check in progress", "details": "The TXT record check has not yet completed."}}, "_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-789"}, "verify": {"href": "https://api.acquia.com/v3/sso-domains/dom-789/actions/verify"}}}}, "failed_verification": {"summary": "Domain verification failed \u2014 DNS record not found", "description": "A domain whose TXT record could not be found. `health.code` is `404`; `details` names the exact record to check. The `verify` link is present so the client can retry after fixing the DNS entry.", "value": {"domain_id": "dom-789", "domain": "acme.corp", "subscription_id": "sub-123", "health": {"code": "404", "summary": "Missing DNS record", "details": "Acquia could not verify the presence of the required TXT DNS record at _acquia-challenge.acme.corp. Ensure the record is published with the correct value and retry verification."}, "verification_record": {"type": "TXT", "host": "_acquia-challenge.acme.corp", "value": "xyz789abc123", "health": {"code": "404", "summary": "Missing DNS record", "details": "The TXT record at _acquia-challenge.acme.corp was not found or does not match the expected value xyz789abc123."}}, "_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-789"}, "verify": {"href": "https://api.acquia.com/v3/sso-domains/dom-789/actions/verify"}}}}, "verified_in_use": {"summary": "Verified domain referenced by an Identity Provider policy", "description": "A verified domain enforced by at least one Identity Provider policy. `health.code` is `200`; `verify` is absent; `identity_providers` is present. A DELETE on this domain will return 409 until the domain is removed from all policies.", "value": {"domain_id": "dom-456", "domain": "acme.com", "subscription_id": "sub-123", "health": {"code": "200", "summary": "Verified", "details": "The DNS TXT record has been confirmed and the domain is verified."}, "verification_record": {"type": "TXT", "host": "_acquia-challenge.acme.com", "value": "abc123def456", "health": {"code": "200", "summary": "Verified", "details": "The TXT record at _acquia-challenge.acme.com matches the expected value."}}, "verified_at": "2026-04-15T10:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-456"}, "identity_providers": {"href": "https://api.acquia.com/v3/identity-providers?filter=domain_id%3Ddom-456"}}}}}}}, "links": {"self": {"operationId": "findSsoDomainBySsoDomainId", "parameters": {"domainId": "$response.body#/domain_id"}}, "delete": {"operationId": "deleteSsoDomainBySsoDomainId", "parameters": {"domainId": "$response.body#/domain_id"}}, "verify": {"operationId": "verifySsoDomainBySsoDomainId", "parameters": {"domainId": "$response.body#/domain_id"}}}}, "Federated_Authentication_API_SsoDomainCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_HalCollection"}, {"$ref": "#/components/schemas/Federated_Authentication_API_PaginatedCollection"}, {"$ref": "#/components/schemas/Federated_Authentication_API_FilteredCollection"}, {"$ref": "#/components/schemas/Federated_Authentication_API_SortedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_SsoDomain"}, {"$ref": "#/components/schemas/Federated_Authentication_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"domain_response": {"summary": "Domain collection with pagination", "description": "Two domains in different states: one verified and in use by a policy (carries `identity_providers` link), one pending verification (carries `verify` link).", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?limit=2&offset=0{&sort}", "templated": true}, "next": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?offset=2&limit=2"}}, "count": 2, "total": 3, "pagination": {"total": 3, "limit": 2, "offset": 0}, "_embedded": {"items": [{"domain_id": "dom-456", "domain": "acme.com", "subscription_id": "sub-123", "health": {"code": "200", "summary": "Verified", "details": "The DNS TXT record has been confirmed and the domain is verified."}, "verification_record": {"type": "TXT", "host": "_acquia-challenge.acme.com", "value": "abc123def456", "health": {"code": "200", "summary": "Verified", "details": "The TXT record at _acquia-challenge.acme.com matches the expected value."}}, "verified_at": "2026-04-15T10:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-456"}, "identity_providers": {"href": "https://api.acquia.com/v3/identity-providers?filter=domain_id%3Ddom-456"}}}, {"domain_id": "dom-789", "domain": "acme.corp", "subscription_id": "sub-123", "health": {"code": "202", "summary": "Verification pending", "details": "Acquia is waiting to confirm the DNS TXT record. Ensure the record has been published and allow time for DNS propagation, then retry verification."}, "verification_record": {"type": "TXT", "host": "_acquia-challenge.acme.corp", "value": "xyz789abc123", "health": {"code": "202", "summary": "Check in progress", "details": "The TXT record check has not yet completed."}}, "_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-789"}, "verify": {"href": "https://api.acquia.com/v3/sso-domains/dom-789/actions/verify"}}}]}}}}}}}, "Federated_Authentication_API_ValidationError": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Federated_Authentication_API_ValidationError"}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "Federated_Authentication_API_UnauthorizedError": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Federated_Authentication_API_UnauthorizedError"}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "Federated_Authentication_API_ForbiddenError": {"description": "Forbidden", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Federated_Authentication_API_ForbiddenError"}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "Federated_Authentication_API_NotFoundError": {"description": "Not Found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Federated_Authentication_API_NotFoundError"}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "Federated_Authentication_API_InternalServerError": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Federated_Authentication_API_InternalServerError"}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}, "Federated_Authentication_API_InvalidOperationError": {"description": "Conflict", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Federated_Authentication_API_InvalidOperationError"}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "Codebase_Service_API_Codebase": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_Codebase"}, {"$ref": "#/components/schemas/Codebase_Service_API_HalItem"}]}, "example": {"id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", "label": "my-codebase", "region": "us-east-1", "vcs_url": "https://github.com/acquia/my-codebase.git", "repository_id": "12345678", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z", "description": "Main production codebase", "flags": {"is_active": true, "is_meo": false}, "hash": "abc123def456", "applications_total": 3, "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4"}}}}}}, "Codebase_Service_API_CodebaseCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_HalCollection"}, {"$ref": "#/components/schemas/Codebase_Service_API_PaginatedCollection"}, {"$ref": "#/components/schemas/Codebase_Service_API_FilteredCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_Codebase"}, {"$ref": "#/components/schemas/Codebase_Service_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"codebase_collection": {"summary": "Codebase collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases?limit=10&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/codebases?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/codebases?limit=10{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/codebases?limit=10&offset=0{&filter}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 10, "offset": 0}, "_embedded": {"items": [{"id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", "label": "my-codebase", "region": "us-east-1", "vcs_url": "https://github.com/acquia/my-codebase.git", "repository_id": "12345678", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z", "description": "Main production codebase", "flags": {"is_active": true, "is_meo": false}, "hash": "abc123def456", "applications_total": 3, "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4"}}}]}}}}}}}, "Codebase_Service_API_CodebaseReference": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_CodebaseReference"}, {"$ref": "#/components/schemas/Codebase_Service_API_HalItem"}]}, "example": {"id": "ref-123", "name": "main", "type": "branch", "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references/main"}}}}}}, "Codebase_Service_API_CodebaseReferenceCollection": {"description": "A list of git references for the codebase", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_HalCollection"}, {"$ref": "#/components/schemas/Codebase_Service_API_PaginatedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_CodebaseReference"}, {"$ref": "#/components/schemas/Codebase_Service_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references?limit=10&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references?limit=10{&offset}", "templated": true}}, "count": 2, "total": 2, "pagination": {"total": 2, "limit": 10, "offset": 0}, "_embedded": {"items": [{"id": "ref-123", "name": "main", "type": "branch", "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references/main"}}}, {"id": "ref-456", "name": "v1.0.0", "type": "tag", "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references/v1.0.0"}}}]}}}}}, "Codebase_Service_API_DomainPattern": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_DomainPattern"}, {"$ref": "#/components/schemas/Codebase_Service_API_HalItem"}]}, "example": {"id": "22222222-2222-2222-2222-222222222222", "pattern": "[site-name].[environment-name].acme.com", "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222"}}}}}, "links": {"self": {"operationId": "findDomainPatternByCodebaseIdAndPatternId", "parameters": {"codebaseId": "$request.path.codebaseId", "patternId": "$request.path.patternId"}}}}, "Codebase_Service_API_DomainPatternCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_HalCollection"}, {"$ref": "#/components/schemas/Codebase_Service_API_PaginatedCollection"}, {"$ref": "#/components/schemas/Codebase_Service_API_SortedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_DomainPattern"}, {"$ref": "#/components/schemas/Codebase_Service_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"domain_pattern_collection": {"summary": "Domain pattern collection", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns"}, "limit": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25{&offset}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25&offset=0{&sort}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 25, "offset": 0}, "_embedded": {"items": [{"id": "22222222-2222-2222-2222-222222222222", "pattern": "[site-name].[environment-name].acme.com", "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222"}}}]}}}, "domain_pattern_collection_empty": {"summary": "Empty domain pattern collection", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns"}, "limit": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25{&offset}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25&offset=0{&sort}", "templated": true}}, "count": 0, "total": 0, "pagination": {"total": 0, "limit": 25, "offset": 0}, "_embedded": {"items": []}}}}}}}, "Codebase_Service_API_ForbiddenError": {"description": "Forbidden", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Codebase_Service_API_ForbiddenError"}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "Codebase_Service_API_InternalServerError": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Codebase_Service_API_InternalServerError"}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}, "Codebase_Service_API_InvalidOperationError": {"description": "Conflict", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Codebase_Service_API_InvalidOperationError"}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "Codebase_Service_API_NotFoundError": {"description": "Not Found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Codebase_Service_API_NotFoundError"}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "Codebase_Service_API_SubscriptionCodebaseCollection": {"description": "A list of codebases for the subscription", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_HalCollection"}, {"$ref": "#/components/schemas/Codebase_Service_API_PaginatedCollection"}, {"$ref": "#/components/schemas/Codebase_Service_API_FilteredCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_Codebase"}, {"$ref": "#/components/schemas/Codebase_Service_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"subscription_codebase_collection": {"summary": "Subscription codebase collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/sub-12345/codebases?limit=10&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/sub-12345/codebases?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/sub-12345/codebases?limit=10{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/subscriptions/sub-12345/codebases?limit=10&offset=0{&filter}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 10, "offset": 0}, "_embedded": {"items": [{"id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", "label": "my-codebase", "region": "us-east-1", "vcs_url": "https://github.com/acquia/my-codebase.git", "repository_id": "12345678", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z", "description": "Main production codebase", "flags": {"is_active": true, "is_meo": false}, "hash": "abc123def456", "applications_total": 3, "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4"}}}]}}}}}}}, "Codebase_Service_API_UnauthorizedError": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Codebase_Service_API_UnauthorizedError"}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "Codebase_Service_API_ValidationError": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Codebase_Service_API_ValidationError"}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}}, "requestBodies": {"Failover_Service_API_CreateFailoverGroupRequest": {"description": "Create failover group request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"name": {"type": "string", "description": "The name of the failover group.", "example": "Primary Failover Group"}}, "required": ["name"], "additionalProperties": false}, "examples": {"create": {"summary": "Creates a new failover group", "description": "Creates a new failover group with the specified name", "value": {"name": "Primary Failover Group"}}}}}}, "Failover_Service_API_SaveMultiRegionFailoverRequest": {"description": "Multi-region failover enable request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"region": {"type": "string", "description": "The region to enable multi-region failover for.", "example": "us-east-1"}}, "required": ["region"], "additionalProperties": false, "minProperties": 1}, "examples": {"enable": {"summary": "Enables multi-region failover for a region", "description": "Enables multi-region failover for the specified region", "value": {"region": "us-east-1"}}}}}}, "CDN_API_ProvisionCdnForDomainRequest": {"description": "Domain CDN provisioning request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"environment_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "The environment identifier that the domain will be associated with for purging purposes."}}, "additionalProperties": false, "required": ["environment_id"], "minProperties": 1}, "example": {"environment_id": "0c3f0f5f-5727-4838-9459-2d90ee1cf7c1"}}}}, "CDN_API_CreatePurgeRequest": {"description": "Purge request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"resource_type": {"type": "string", "description": "The type of resource to purge.", "enum": ["tags", "urls", "domains", "everything"]}, "values": {"type": "array", "description": "List of values to purge based on the resource type.\nRequired when `resource_type` is not `everything`.\n", "items": {"type": "string"}, "minItems": 1}}, "additionalProperties": false, "required": ["resource_type"], "minProperties": 1}, "examples": {"purge_urls": {"summary": "Purge specific URLs", "value": {"resource_type": "urls", "values": ["https://example.com/page1", "https://example.com/page2"]}}, "purge_tags": {"summary": "Purge by cache tags", "value": {"resource_type": "tags", "values": ["product-123", "category-456"]}}, "purge_domains": {"summary": "Purge entire domains", "value": {"resource_type": "domains", "values": ["example.com", "test.example.org"]}}, "purge_everything": {"summary": "Purge everything", "value": {"resource_type": "everything"}}}}}}, "CDN_API_UpdateSecurityRuleSetRequest": {"description": "Security ruleset update request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"is_enabled": {"type": "boolean", "description": "Indicates whether the security ruleset should be enabled."}}, "additionalProperties": false, "required": ["is_enabled"], "minProperties": 1}, "examples": {"enable": {"summary": "Enables a security ruleset", "value": {"is_enabled": true}}}}}}, "CDN_API_CreateIpRuleRequest": {"description": "IP rule create request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"ips": {"type": "array", "description": "The IPs or CIDR blocks to include in the rule.", "items": {"type": "string", "description": "An IP address or CIDR block."}}, "action": {"type": "string", "enum": ["block", "allow"], "description": "The action applied when the rule matches."}, "display_name": {"type": "string", "description": "The display name of the IP rule."}, "description": {"type": "string", "description": "The description of the IP rule."}}, "additionalProperties": false, "required": ["ips", "action", "display_name"]}, "examples": {"create": {"summary": "Creates an IP rule", "value": {"ips": ["192.0.2.10", "198.51.100.0/24"], "action": "block", "display_name": "Block office IPs", "description": "Blocks office IP ranges."}}}}}}, "CDN_API_UpdateIpRuleRequest": {"description": "IP rule update request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"display_name": {"type": "string", "description": "The display name of the IP rule."}, "action": {"type": "string", "enum": ["block", "allow"], "description": "The action applied when the rule matches."}, "description": {"type": "string", "description": "The description of the IP rule."}, "ips": {"type": "array", "description": "The IPs or CIDR blocks associated with the rule.", "items": {"type": "string", "description": "An IP address or CIDR block."}}}, "additionalProperties": false, "minProperties": 1}, "examples": {"update": {"summary": "Updates an IP rule", "value": {"display_name": "Allow support", "action": "allow", "ips": ["203.0.113.5"]}}}}}}, "CDN_API_CreateCustomRuleRequest": {"description": "Custom security rule create request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"display_name": {"type": "string", "description": "The display name of the custom security rule."}, "action": {"type": "string", "enum": ["block", "allow", "alert"], "description": "The action applied when the rule matches."}, "priority": {"type": "integer", "minimum": 1, "description": "The priority order for the rule."}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "paths": {"type": "array", "description": "The paths the rule applies to.", "items": {"type": "string", "description": "A path pattern."}}}, "additionalProperties": false, "required": ["display_name", "action", "domains", "paths"], "minProperties": 1}, "examples": {"create": {"summary": "Creates a custom security rule", "value": {"display_name": "Block bad bots", "action": "block", "priority": 1, "domains": ["example.com"], "paths": ["/api/*"]}}}}}}, "CDN_API_CreateRateLimitingRuleRequest": {"description": "Rate limiting rule create request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"display_name": {"type": "string", "description": "The display name of the rate limiting rule."}, "action": {"type": "string", "enum": ["block", "alert"], "description": "The action applied when the rule matches."}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "rate_limit_per_minute": {"type": "string", "enum": ["lenient", "moderate", "strict"], "description": "The rate limit category applied to the rule."}}, "additionalProperties": false, "required": ["display_name", "action", "rate_limit_per_minute"], "minProperties": 1}, "examples": {"create": {"summary": "Creates a rate limiting rule", "value": {"display_name": "Rate Rule 1", "action": "alert", "rate_limit_per_minute": "lenient", "domains": ["example.com"]}}}}}}, "CDN_API_UpdateRateLimitingRuleRequest": {"description": "Rate limiting rule update request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"display_name": {"type": "string", "description": "The display name of the rate limiting rule."}, "action": {"type": "string", "enum": ["block", "alert"], "description": "The action applied when the rule matches."}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "rate_limit_per_minute": {"type": "string", "enum": ["lenient", "moderate", "strict"], "description": "The rate limit category applied to the rule."}}, "additionalProperties": false, "minProperties": 1}, "examples": {"update": {"summary": "Updates a rate limiting rule", "value": {"display_name": "Rate Rule 2", "action": "block", "rate_limit_per_minute": "strict", "domains": ["shop.example.com"]}}}}}}, "CDN_API_UpdateCustomRuleRequest": {"description": "Custom security rule update request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"display_name": {"type": "string", "description": "The display name of the custom security rule."}, "action": {"type": "string", "enum": ["block", "allow", "alert"], "description": "The action applied when the rule matches."}, "priority": {"type": "integer", "minimum": 1, "description": "The priority order for the rule."}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "paths": {"type": "array", "description": "The paths the rule applies to.", "items": {"type": "string", "description": "A path pattern."}}}, "additionalProperties": false, "minProperties": 1}, "examples": {"update": {"summary": "Updates a custom security rule", "value": {"display_name": "Alert login scans", "action": "alert", "priority": 2, "domains": ["shop.example.com"], "paths": ["/login"]}}}}}}, "Environment_Service_API_StartDeploymentRequest": {"description": "Deployment start request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"run_hooks": {"type": "boolean", "description": "Whether to run deployment hooks."}, "code_reference": {"type": "string", "description": "The code reference (branch or tag) to deploy."}, "hooks_argument": {"type": "string", "description": "Additional arguments passed to deployment hooks."}}, "required": ["run_hooks", "code_reference"], "additionalProperties": false, "minProperties": 1}, "examples": {"start_deployment": {"summary": "Start a deployment", "description": "Starts a deployment for the specified environment.", "value": {"run_hooks": true, "code_reference": "release-2025-01-15", "hooks_argument": "--migrate --clear-cache"}}}}}}, "Environment_Service_API_UpdateCodeDeployRequest": {"description": "Code deploy concurrency update request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"concurrency": {"type": "integer", "minimum": 1, "maximum": 100, "description": "Maximum number of concurrent code deploys allowed for the environment."}}, "required": ["concurrency"], "additionalProperties": false, "minProperties": 1}, "examples": {"update_concurrency": {"summary": "Update code deploy concurrency", "description": "Sets the maximum concurrent code deploys for the environment.", "value": {"concurrency": 10}}}}}}, "Environment_Service_API_ReorderSiteInstancesRequest": {"description": "Site instances reorder request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"site_instance_ids": {"type": "array", "description": "List of site instance IDs in the desired priority order.", "items": {"type": "string", "description": "Site instance identifier in the format {siteId}.{environmentId} (dot-separated site and environment UUIDs)."}}}, "required": ["site_instance_ids"], "additionalProperties": false, "minProperties": 1}, "examples": {"reorder": {"summary": "Reorder site instances", "description": "Provides the desired order of site instance IDs for the environment.", "value": {"site_instance_ids": ["3e8ecbec-ea7c-4260-8414-ef2938c859bc.a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3", "b1d8e2f8-67c7-5d1e-cbe1-1f7604f77de4.c2e9f3a9-78d8-6e2f-dcf2-2a8715a88ef5", "d3fa04ba-89e9-4f3a-edf3-3b9826b99fa6.e4ab15cb-90fa-4a4b-fea4-4c0937c00ab7"]}}}}}}, "Environment_Service_API_UpdateEnvironmentRequest": {"description": "Update environment request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"label": {"type": "string", "minLength": 1, "maxLength": 128, "description": "Human-readable label for the environment."}, "description": {"type": "string", "minLength": 1, "maxLength": 512, "description": "Description for the environment."}, "properties": {"type": "object", "description": "PHP and server configuration properties for the environment.", "properties": {"version": {"type": "string", "description": "PHP version (e.g. \"8.3\")."}, "apcu": {"type": "integer", "description": "APCu memory limit in MB."}, "max_execution_time": {"type": "integer", "description": "PHP max execution time in seconds."}, "memory_limit": {"type": "integer", "description": "PHP memory limit in MB."}, "opcache": {"type": "integer", "description": "OPcache memory limit in MB."}, "interned_strings_buffer": {"type": "integer", "description": "OPcache interned strings buffer in MB."}, "client_max_body_size": {"type": "integer", "description": "Nginx client_max_body_size in MB."}, "upload_max_filesize": {"type": "integer", "description": "PHP upload_max_filesize in MB."}, "max_post_size": {"type": "integer", "description": "PHP post_max_size in MB."}, "max_input_vars": {"type": "integer", "description": "PHP max_input_vars."}, "memcached_limit": {"type": "integer", "description": "Memcached memory limit in MB."}, "operating_system": {"type": "string", "description": "Operating system (e.g. \"focal\")."}, "sendmail_path": {"type": "string", "description": "Sendmail path configuration."}}}}, "additionalProperties": false, "minProperties": 1}, "examples": {"update_label": {"summary": "Update environment label", "value": {"label": "Staging", "description": "Staging environment"}}, "update_properties": {"summary": "Update PHP properties", "value": {"properties": {"version": "8.3", "memory_limit": 256}}}}}}}, "Environment_Service_API_ClearCachesRequest": {"description": "Clear caches request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"domains": {"type": "array", "description": "List of domain names to clear caches for.", "minItems": 1, "items": {"type": "string", "description": "A domain name."}}}, "required": ["domains"], "additionalProperties": false}, "examples": {"clear_caches": {"summary": "Clear caches for specific domains", "value": {"domains": ["example.com", "www.example.com"]}}}}}}, "Environment_Service_API_CreateSiteInstanceRequest": {"description": "Create site instance request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"site_id": {"type": "string", "description": "The UUID of the site to associate with this environment."}, "source_environment_id": {"type": "string", "description": "The UUID of the environment to copy files and database from during creation."}, "source_site_id": {"type": "string", "description": "The UUID of the source site to copy files from during creation."}, "hook_arguments": {"type": "string", "description": "Additional arguments to pass to deployment hooks during creation."}}, "required": ["site_id"], "additionalProperties": false}, "examples": {"create": {"summary": "Associate a site with an environment", "value": {"site_id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc"}}}}}}, "Environment_Service_API_CopySiteInstanceFilesRequest": {"description": "Copy site instance files request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"source_environment_id": {"type": "string", "description": "The UUID of the environment to copy files from."}}, "required": ["source_environment_id"], "additionalProperties": false}, "examples": {"copy_files": {"summary": "Copy files from another environment", "value": {"source_environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323"}}}}}}, "Environment_Service_API_CopySiteInstanceDatabaseRequest": {"description": "Copy site instance database request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"source_environment_id": {"type": "string", "description": "The UUID of the environment to copy the database from."}}, "required": ["source_environment_id"], "additionalProperties": false}, "examples": {"copy_database": {"summary": "Copy database from another environment", "value": {"source_environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323"}}}}}}, "Environment_Service_API_AssociatePrivateNetworkRequest": {"description": "Associate private network request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"private_network_id": {"type": "string", "description": "The identifier of the private network to associate with this environment."}}, "required": ["private_network_id"], "additionalProperties": false, "minProperties": 1}, "examples": {"associate": {"summary": "Associate a private network", "value": {"private_network_id": "pn-a1b2c3d4-e5f6-7890-abcd-ef1234567890"}}}}}}, "Environment_Service_API_UpdateTrustedProxiesRequest": {"description": "Update trusted proxies request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"cidrs_ipv4": {"type": "array", "description": "List of trusted IPv4 CIDR blocks.", "items": {"type": "string", "description": "An IPv4 CIDR block (e.g. \"203.0.113.0/24\")."}}, "cidrs_ipv6": {"type": "array", "description": "List of trusted IPv6 CIDR blocks.", "items": {"type": "string", "description": "An IPv6 CIDR block (e.g. \"2001:db8::/32\")."}}, "associated_cdns": {"type": "array", "description": "List of CDN names to associate with this environment.", "items": {"type": "string", "enum": ["akamai", "cloudflare", "fastly"]}}}, "additionalProperties": false, "minProperties": 1}, "examples": {"update": {"summary": "Update trusted proxy configuration", "value": {"cidrs_ipv4": ["203.0.113.0/24"], "cidrs_ipv6": [], "associated_cdns": ["cloudflare"]}}}}}}, "Environment_Service_API_CreateDomainPatternRequest": {"description": "Create domain pattern request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The domain pattern to apply to all associated sites in this environment, optionally followed by a single path segment. The [site-name] token is mandatory; [environment-name] is optional. Domain \u2264 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per environment) are enforced at the service layer.\n", "example": "[site-name].acme.com"}}, "required": ["pattern"], "additionalProperties": false}, "examples": {"create_domain_pattern": {"summary": "Create a domain pattern", "value": {"pattern": "[site-name].acme.com"}}}}}}, "Environment_Service_API_UpdateDomainPatternRequest": {"description": "Update domain pattern request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The updated domain pattern to apply to all associated sites in this environment, optionally followed by a single path segment. The [site-name] token is mandatory. Domain \u2264 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per environment) are enforced at the service layer.\n"}}, "required": ["pattern"], "additionalProperties": false, "minProperties": 1}, "examples": {"update_domain_pattern": {"summary": "Update a domain pattern", "value": {"pattern": "[site-name].staging.acme.com"}}}}}}, "SSH_Key_Service_API_SshKeyRequestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "required": ["label", "public_key"], "description": "Describes the request body for an SSH key.", "properties": {"label": {"type": "string", "description": "The SSH key label."}, "public_key": {"type": "string", "description": "The public key."}}, "additionalProperties": false, "minProperties": 1}, "example": {"label": "mykey", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQChwPHzTTDKDpSbpa2+d22LcbQmsw92eLsUK3Fmei1fiGDkd34NsYCN8m7lsi3NbvdMS83CtPQPWiCveYPzFs1/hHc4PYj8opD2CNnr5iWVVbyaulCYHCgVv4aB/ojcexg8q483A4xJeF15TiCr/gu34rK6ucTvC/tn/rCwJBudczvEwt0klqYwv8Cl/ytaQboSuem5KgSjO3lMrb6CWtfSNhE43ZOw+UBFBqxIninN868vGMkIv9VY34Pwj54rPn/ItQd6Ef4B0KHHaGmzK0vfP+AK7FxNMoHnj3iYT33KZNqtDozdn5tYyH/bThPebEtgqUn+/w5l6wZIC/8zzvls/127ngHk+jNa0PlNyS2TxhPUK4NaPHIEnnrlp07JEYC4ImcBjaYCWAdcTcUkcJjwZQkN4bGmyO9cjICH98SdLD/HxqzTHeaYDbAX/Hu9HfaBb5dXLWsjw3Xc6hoVnUUZbMQyfgb0KgxDLh92eNGxJkpZiL0VDNOWCxDWsNpzwhLNkLqCvI6lyxiLaUzvJAk6dPaRhExmCbU1lDO2eR0FdSwC1TEhJOT9eDIK1r2hztZKs2oa5FNFfB/IFHVWasVFC9N2h/r/egB5zsRxC9MqBLRBq95NBxaRSFng6ML5WZSw41Qi4C/JWVm89rdj2WqScDHYyAdwyyppWU4T5c9Fmw== example@example.com"}}}}, "Site_Service_API_DuplicateSiteRequest": {"description": "Site duplication request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"environment_mapping": {"type": "array", "items": {"type": "string", "pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-]+$", "description": "Environment mapping in the format 'sourceEnvId:targetEnvId'"}, "description": "Array of environment mappings. You must provide exactly one environment mapping. Each entry maps a source environment ID to a target environment ID, separated by a colon.\n", "minItems": 1, "maxItems": 1, "example": ["0ebce493-9d09-479d-a9a8-138a206fa687:a1b2c3d4-e5f6-7890-abcd-ef1234567890"]}, "site_name": {"type": "string", "description": "Machine name for the duplicated site. Must start with a lowercase letter and contain only lowercase letters and numbers. Maximum 14 characters.\n", "minLength": 1, "maxLength": 14, "pattern": "^[a-z][a-z0-9]*$", "example": "dupsite"}, "site_label": {"type": "string", "description": "Human-readable label for the duplicated site. Must only contain letters, numbers, and spaces. Maximum 50 characters.\n", "minLength": 1, "maxLength": 50, "example": "Duplicated Site"}, "site_id": {"type": "string", "format": "uuid", "description": "An optional explicit UUID for the new duplicated site. A UUID is generated automatically if omitted.", "example": "f1a2b3c4-d5e6-7890-abcd-ef1234567890"}, "hook_argument": {"type": "string", "description": "Optional hook argument to pass to the duplication process.", "example": "--verbose"}}, "required": ["environment_mapping", "site_name", "site_label"], "additionalProperties": false}, "examples": {"duplicate_basic": {"summary": "Duplicate a site with required fields", "description": "Duplicates a site with a single environment mapping", "value": {"environment_mapping": ["0ebce493-9d09-479d-a9a8-138a206fa687:a1b2c3d4-e5f6-7890-abcd-ef1234567890"], "site_name": "dupsite", "site_label": "Duplicated Site"}}, "duplicate_with_options": {"summary": "Duplicate a site with all options", "description": "Duplicates a site specifying a custom site ID and hook argument", "value": {"environment_mapping": ["0ebce493-9d09-479d-a9a8-138a206fa687:a1b2c3d4-e5f6-7890-abcd-ef1234567890"], "site_name": "duphook", "site_label": "Dup With Hook", "site_id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", "hook_argument": "my-hook-arg"}}}}}}, "Site_Service_API_CreateSiteRequest": {"description": "Site creation request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"name": {"type": "string", "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", "minLength": 1, "maxLength": 14, "pattern": "^[a-z][a-z0-9]*$", "example": "mysite"}, "label": {"type": "string", "description": "The human-readable label for the site.", "minLength": 1, "maxLength": 50, "example": "My Site"}, "codebase_id": {"type": "string", "description": "The unique identifier of the codebase to associate with this site.", "pattern": "^[a-zA-Z0-9-]+$", "example": "a9b8c7d6-e5f4-3210-abcd-ef9876543210"}, "site_id": {"type": "string", "format": "uuid", "description": "An optional explicit UUID for the new site. A UUID is generated automatically if omitted.", "example": "0ebce493-9d09-479d-a9a8-138a206fa687"}, "description": {"type": "string", "description": "An optional description for the site.", "maxLength": 512, "example": "A production site for the marketing team."}}, "required": ["name", "label", "codebase_id"], "additionalProperties": false}, "examples": {"create_site_full": {"summary": "Create a new site with all fields", "value": {"name": "mysite", "label": "My Site", "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", "site_id": "0ebce493-9d09-479d-a9a8-138a206fa687", "description": "This is a description of my site."}}, "create_site_minimal": {"summary": "Create a new site with required fields only", "value": {"name": "newsitename", "label": "New Site Label", "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210"}}}}}}, "Site_Service_API_UpdateSiteRequest": {"description": "Site update request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"label": {"type": "string", "description": "The new human-readable label for the site.", "minLength": 1, "maxLength": 50, "example": "My Updated Site"}, "description": {"type": "string", "description": "The new description for the site.", "maxLength": 512, "example": "Updated description for this site."}}, "additionalProperties": false, "minProperties": 1}, "examples": {"update_label": {"summary": "Update site label", "value": {"label": "My Updated Site"}}, "update_description": {"summary": "Update site description", "value": {"description": "Updated description for this site."}}, "update_both": {"summary": "Update label and description", "value": {"label": "My Updated Site", "description": "Updated description for this site."}}}}}}, "Federated_Authentication_API_CreateSsoDomain": {"description": "Request body for creating a new domain.", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"domain": {"type": "string", "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", "description": "The domain name to create (e.g., \"acme.com\")."}}, "required": ["domain"], "additionalProperties": false}, "example": {"domain": "acme.com"}}}}, "Federated_Authentication_API_CreateIdentityProvider": {"description": "Request body for creating a new Identity Provider.", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"idp_entity_id": {"type": "string", "format": "uri", "description": "The Identity Provider Entity ID."}, "label": {"type": "string", "description": "The name of the Identity Provider."}, "sso_url": {"type": "string", "format": "uri", "description": "The SSO URL for this IdP."}, "certificate": {"type": "string", "description": "The certificate for this IdP."}}, "required": ["label", "idp_entity_id", "sso_url", "certificate"], "additionalProperties": false}, "example": {"label": "Acme Corporation Azure AD", "idp_entity_id": "https://idp.acme.com/saml", "sso_url": "https://acme.com/sso", "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----"}}}}, "Federated_Authentication_API_UpdateIdentityProvider": {"description": "Request body for updating an existing Identity Provider.", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"label": {"type": "string", "description": "The name of the Identity Provider."}, "certificate": {"type": "string", "description": "The X.509 certificate used for SAML authentication."}, "sso_url": {"type": "string", "format": "uri", "description": "The Single Sign-On URL for the Identity Provider."}, "idp_entity_id": {"type": "string", "format": "uri", "description": "The Identity Provider Entity ID."}}, "additionalProperties": false, "minProperties": 1}, "example": {"label": "Updated Acme Corporation Azure AD", "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", "sso_url": "https://updatedacme.com/sso", "idp_entity_id": "https://idp2.acme.com/saml"}}}}, "Federated_Authentication_API_CreateSsoPolicy": {"$ref": "#/components/requestBodies/Federated_Authentication_API_CreateSsoPolicyRequest"}, "Federated_Authentication_API_UpdateSsoPolicy": {"$ref": "#/components/requestBodies/Federated_Authentication_API_UpdateSsoPolicyRequest"}, "Federated_Authentication_API_UpdateSsoPolicyRequest": {"description": "Request body for updating an SSO policy for an Identity Provider.", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"domain_ids": {"type": "array", "description": "List of verified domain IDs to enforce this Identity Provider for.", "items": {"type": "string", "description": "Reference to a verified SSO domain."}}}, "required": ["domain_ids"], "additionalProperties": false, "minProperties": 1}, "example": {"domain_ids": ["dom-456"]}}}}, "Federated_Authentication_API_CreateSsoPolicyRequest": {"description": "Request body for creating an SSO policy for an Identity Provider.", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"domain_ids": {"type": "array", "description": "List of verified domain IDs to enforce this Identity Provider for.", "items": {"type": "string", "description": "Reference to a verified SSO domain."}}}, "required": ["domain_ids"], "additionalProperties": false}, "example": {"domain_ids": ["dom-456", "dom-789"]}}}}, "Codebase_Service_API_CreateCodebaseRequest": {"description": "Codebase creation request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"codebase_id": {"type": "string", "format": "uuid", "description": "Client-supplied UUID for the new codebase"}, "label": {"type": "string", "description": "Human-readable label for the codebase"}, "region": {"type": "string", "description": "AWS region where the codebase will be created"}}, "required": ["codebase_id", "label", "region"], "additionalProperties": false}, "examples": {"create": {"summary": "Create a codebase", "description": "Creates a new codebase for a subscription", "value": {"codebase_id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", "label": "my-codebase", "region": "us-east-1"}}}}}}, "Codebase_Service_API_CreateDomainPatternRequest": {"description": "Create domain pattern request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The domain pattern to apply to all associated sites in this codebase, optionally followed by a single path segment. Both [site-name] and [environment-name] tokens are mandatory. Domain \u2264 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per codebase) are enforced at the service layer.\n"}}, "required": ["pattern"], "additionalProperties": false}, "examples": {"create_domain_pattern": {"summary": "Create a domain pattern", "value": {"pattern": "[site-name].[environment-name].acme.com"}}}}}}, "Codebase_Service_API_UpdateCodebaseRequest": {"description": "Codebase update request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"label": {"type": "string", "description": "Human-readable label for the codebase"}, "description": {"type": "string", "description": "Description of the codebase"}}, "minProperties": 1, "additionalProperties": false}, "examples": {"update": {"summary": "Update a codebase", "description": "Updates an existing codebase's label and description", "value": {"label": "updated-codebase-label", "description": "Updated codebase description"}}}}}}, "Codebase_Service_API_UpdateDomainPatternRequest": {"description": "Update domain pattern request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The updated domain pattern to apply to all associated sites in this codebase, optionally followed by a single path segment. Both [site-name] and [environment-name] tokens are mandatory. Domain \u2264 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per codebase) are enforced at the service layer.\n"}}, "required": ["pattern"], "additionalProperties": false, "minProperties": 1}, "examples": {"update_domain_pattern": {"summary": "Update a domain pattern", "value": {"pattern": "[site-name].[environment-name].acme.com"}}}}}}}, "schemas": {"Failover_Service_API_FailoverGroup": {"type": "object", "properties": {"id": {"type": "string", "description": "Unique identifier for the failover group.", "example": "b2c3d4e5-f6a7-8901-bcde-f12345678901"}, "name": {"type": "string", "description": "The name of the failover group.", "example": "Primary Failover Group"}, "status": {"type": "string", "enum": ["creating", "normal", "failed-over", "failing-over", "error", "deleting", "deleted"], "description": "The current status of the failover group.", "example": "normal"}, "pairs": {"type": "array", "description": "The list of failover pairs belonging to this failover group.", "items": {"$ref": "#/components/schemas/Failover_Service_API_FailoverPair"}}}, "required": ["id", "name", "status", "pairs"]}, "Failover_Service_API_FailoverPair": {"type": "object", "properties": {"service_name": {"type": "string", "description": "The name of the service for this failover pair.", "example": "my-application-service"}, "primary_id": {"type": "string", "description": "The ID of the primary resource in the failover pair.", "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"}, "failover_id": {"type": "string", "description": "The UUID of the failover resource in the failover pair.", "example": "f1e2d3c4-b5a6-7890-fedc-ba9876543210"}}, "required": ["service_name", "primary_id", "failover_id"]}, "Failover_Service_API_MultiRegionFailoverStatus": {"type": "object", "properties": {"is_enabled": {"type": "boolean", "description": "Whether multi-region failover is enabled for the environment."}, "failover_group_id": {"type": "string", "description": "The identifier of the failover group associated with the environment."}, "is_traffic_failed_over": {"type": "boolean", "description": "Whether traffic has been failed over to the secondary region."}}, "required": ["is_enabled"]}, "Failover_Service_API_HalLink": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "Failover_Service_API_HalItem": {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"$ref": "#/components/schemas/Failover_Service_API_HalLink"}}, "required": ["self"], "additionalProperties": {"$ref": "#/components/schemas/Failover_Service_API_HalLink"}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, "Failover_Service_API_HalCollection": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_HalItem"}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "Failover_Service_API_PaginatedCollection": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"$ref": "#/components/schemas/Failover_Service_API_HalLink", "description": "Link to the previous page (templated)"}, "next": {"$ref": "#/components/schemas/Failover_Service_API_HalLink", "description": "Link to the next page (templated)"}, "offset": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"$ref": "#/components/schemas/Failover_Service_API_HalLink"}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, "Failover_Service_API_FilteredCollection": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"$ref": "#/components/schemas/Failover_Service_API_HalLink"}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, "Failover_Service_API_ValidationError": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "Failover_Service_API_Error": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, "Failover_Service_API_UnauthorizedError": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "Failover_Service_API_ForbiddenError": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "Failover_Service_API_InternalServerError": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "Failover_Service_API_Message": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_HalItem"}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, "Failover_Service_API_InvalidOperationError": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "Failover_Service_API_NotFoundError": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "API_Specs_API_Error": {"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, "API_Specs_API_InternalServerError": {"allOf": [{"$ref": "#/components/schemas/API_Specs_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "CDN_API_Domain": {"type": "object", "description": "CDN domain resource.", "properties": {"domain": {"type": "string", "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?(\\.[a-zA-Z]{2,})+$", "description": "The fully qualified domain name."}, "subscription_uuid": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "The unique identifier of the subscription the domain belongs to."}, "environment_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "The environment identifier associated with the domain."}, "application_name": {"type": "string", "description": "The name of the application associated with the domain."}, "status": {"type": "string", "description": "The current status of the domain.", "enum": ["connecting-to-edge", "domain-validation-pending", "ready-for-dns-repointing", "configuration-failed", "configured"]}, "ownership_validation_cname": {"type": "string", "description": "The CNAME record that must be created on the domain's DNS to validate ownership."}, "bandwidth_usage_tb": {"type": "number", "format": "float", "description": "The bandwidth usage for the domain in terabytes."}, "created_at": {"type": "string", "format": "date-time", "description": "The timestamp when the domain was created."}, "updated_at": {"type": "string", "format": "date-time", "description": "The timestamp when the domain was last updated."}}, "required": ["domain", "subscription_uuid", "environment_id", "status", "application_name", "ownership_validation_cname", "bandwidth_usage_tb", "created_at", "updated_at"]}, "CDN_API_SecurityRuleSet": {"type": "object", "properties": {"id": {"type": "integer", "minimum": 1, "description": "The unique identifier of the security ruleset."}, "name": {"type": "string", "description": "The display name of the security ruleset."}, "is_enabled": {"type": "boolean", "description": "Indicates whether the security ruleset is enabled."}, "description": {"type": "string", "description": "The description of the security ruleset."}, "type": {"type": "string", "description": "The type of the security ruleset.", "enum": ["owasp", "acquia-managed"]}}, "required": ["id", "name", "is_enabled"]}, "CDN_API_IpRule": {"type": "object", "properties": {"id": {"type": "integer", "minimum": 1, "description": "The unique identifier of the IP rule."}, "display_name": {"type": "string", "description": "The display name of the IP rule."}, "action": {"type": "string", "enum": ["block", "allow"], "description": "The action applied when the rule matches."}, "description": {"type": "string", "description": "The description of the IP rule."}, "ips": {"type": "array", "description": "The IPs or CIDR blocks associated with the rule.", "items": {"type": "string", "description": "An IP address or CIDR block."}}, "created_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was created."}, "updated_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was last updated."}}, "required": ["id", "display_name", "action", "ips", "created_at", "updated_at"]}, "CDN_API_CustomRule": {"type": "object", "properties": {"id": {"type": "integer", "minimum": 1, "description": "The unique identifier of the custom security rule."}, "display_name": {"type": "string", "description": "The display name of the custom security rule."}, "action": {"type": "string", "enum": ["block", "allow", "alert"], "description": "The action applied when the rule matches."}, "priority": {"type": "integer", "minimum": 1, "description": "The priority order for the rule. Lower values are evaluated first.\nPriorities must be unique within a subscription \u2014 creating or\nupdating a rule with a priority already in use replaces the\nexisting rule at that priority.\n"}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "paths": {"type": "array", "description": "The paths the rule applies to.", "items": {"type": "string", "description": "A path pattern."}}, "mapped_domains_count": {"type": "integer", "description": "The number of domains the rule is mapped to."}, "targets": {"type": "array", "description": "Conditions that must match for the rule to fire.", "items": {"oneOf": [{"description": "Range match for IP or ASN ranges.", "type": "object", "required": ["attribute", "criteria", "value"], "additionalProperties": false, "properties": {"attribute": {"type": "string", "description": "The request attribute the rule inspects.", "enum": ["source-ip", "asn"]}, "criteria": {"type": "string", "description": "How `value` is compared against `attribute`.", "enum": ["range"]}, "value": {"type": "object", "description": "Range bounds for IP or ASN ranges.", "additionalProperties": false, "required": ["from", "to"], "properties": {"from": {"type": "string", "description": "The start of the range."}, "to": {"type": "string", "description": "The end of the range."}}}}}, {"description": "Value-list match for non-header, non-query attributes.", "type": "object", "required": ["attribute", "criteria", "value"], "additionalProperties": false, "properties": {"attribute": {"type": "string", "description": "The request attribute the rule inspects.", "enum": ["source-ip", "country", "method", "path", "asn"]}, "criteria": {"type": "string", "description": "How `value` is compared against `attribute`.", "enum": ["equals", "contains", "regex"]}, "value": {"type": "object", "description": "A list of candidate values combined with OR.", "additionalProperties": false, "required": ["values"], "properties": {"values": {"type": "array", "description": "The list of values.", "items": {"type": "string", "description": "A value."}}}}}}, {"description": "Key-value match for header or query-string attributes.", "type": "object", "required": ["attribute", "criteria", "value"], "additionalProperties": false, "properties": {"attribute": {"type": "string", "description": "The request attribute the rule inspects.", "enum": ["header", "query-string"]}, "criteria": {"type": "string", "description": "How `value` is compared against `attribute`.", "enum": ["equals", "contains", "regex"]}, "value": {"type": "object", "description": "Key-value matchers for header or query-string attributes.", "additionalProperties": false, "required": ["key_value_pairs"], "properties": {"key_value_pairs": {"type": "array", "description": "The list of key-value pairs.", "items": {"type": "object", "description": "A key-value pair.", "required": ["key", "value"], "properties": {"key": {"type": "string", "description": "The header or query-parameter name."}, "value": {"type": "string", "description": "The expected value."}}}}}}}}]}}, "created_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was created."}, "updated_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was last updated."}}, "required": ["id", "display_name", "action", "priority", "domains", "paths", "created_at", "updated_at", "targets"]}, "CDN_API_RateLimitingRule": {"type": "object", "properties": {"id": {"type": "integer", "minimum": 1, "description": "The unique identifier of the rate limiting rule."}, "display_name": {"type": "string", "description": "The display name of the rate limiting rule."}, "action": {"type": "string", "enum": ["block", "alert"], "description": "The action applied when the rule matches."}, "rate_limit_per_minute": {"type": "string", "enum": ["lenient", "moderate", "strict"], "description": "The rate limit category applied to the rule."}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "created_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was created."}, "updated_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was last updated."}}, "required": ["id", "display_name", "action", "rate_limit_per_minute", "domains", "created_at", "updated_at"]}, "CDN_API_HalLink": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "CDN_API_HalItem": {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"$ref": "#/components/schemas/CDN_API_HalLink"}}, "required": ["self"], "additionalProperties": {"$ref": "#/components/schemas/CDN_API_HalLink"}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, "CDN_API_HalCollection": {"allOf": [{"$ref": "#/components/schemas/CDN_API_HalItem"}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "CDN_API_PaginatedCollection": {"allOf": [{"$ref": "#/components/schemas/CDN_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"$ref": "#/components/schemas/CDN_API_HalLink", "description": "Link to the previous page (templated)"}, "next": {"$ref": "#/components/schemas/CDN_API_HalLink", "description": "Link to the next page (templated)"}, "offset": {"allOf": [{"$ref": "#/components/schemas/CDN_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"$ref": "#/components/schemas/CDN_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"$ref": "#/components/schemas/CDN_API_HalLink"}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, "CDN_API_FilteredCollection": {"allOf": [{"$ref": "#/components/schemas/CDN_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"$ref": "#/components/schemas/CDN_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"$ref": "#/components/schemas/CDN_API_HalLink"}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, "CDN_API_SortedCollection": {"allOf": [{"$ref": "#/components/schemas/CDN_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"$ref": "#/components/schemas/CDN_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"$ref": "#/components/schemas/CDN_API_HalLink"}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, "CDN_API_ValidationError": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "CDN_API_Error": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, "CDN_API_UnauthorizedError": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "CDN_API_ForbiddenError": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "CDN_API_NotFoundError": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "CDN_API_InternalServerError": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "CDN_API_Message": {"allOf": [{"$ref": "#/components/schemas/CDN_API_HalItem"}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, "CDN_API_InvalidOperationError": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "Environment_Service_API_SiteInstance": {"type": "object", "description": "Site Instance properties", "properties": {"site_id": {"type": "string", "description": "The unique identifier of the site", "pattern": "^[a-zA-Z0-9-]+$"}, "environment_id": {"type": "string", "description": "The unique identifier of the environment", "pattern": "^[a-zA-Z0-9-]+$"}, "status": {"type": "string", "description": "The current status of the site instance", "enum": ["active", "creating", "create-failed", "updating", "update-failed", "deleting", "deleted", "delete-failed"]}, "health_status": {"type": "object", "description": "Health status information for the site instance", "properties": {"code": {"type": "string", "description": "Health status code"}, "summary": {"type": "string", "description": "Summary of the health status"}, "details": {"type": "string", "description": "Detailed health status information"}}, "required": ["code", "summary", "details"]}, "domains": {"type": "array", "description": "List of domains associated with the site instance", "items": {"type": "string"}}, "deployment_order": {"type": ["integer", "null"], "description": "The order in which this site instance is deployed relative to others.", "example": 1}, "delete_at": {"type": ["string", "null"], "format": "date-time", "description": "The scheduled deletion date-time for this site instance, if set."}, "date_marked_for_deletion": {"type": ["string", "null"], "format": "date-time", "description": "The date-time when this site instance was marked for deletion."}, "protection_mode": {"type": ["object", "null"], "description": "The current protection mode of the site instance", "properties": {"is_enabled": {"type": "boolean", "description": "Indicates whether the protection mode is enabled for the site instance"}, "is_inherited": {"type": "boolean", "description": "Indicates whether the protection mode is inherited from the environment"}}, "required": ["is_enabled", "is_inherited"]}}, "required": ["site_id", "environment_id", "status", "health_status", "domains"]}, "Environment_Service_API_Environment": {"type": "object", "description": "Environment properties", "properties": {"id": {"type": "string", "description": "The unique identifier of the environment", "pattern": "^[a-zA-Z0-9-]+$"}, "name": {"type": "string", "description": "The machine name of the environment"}, "label": {"type": "string", "description": "The human-readable label of the environment"}, "description": {"type": "string", "description": "A description of the environment"}, "status": {"type": "string", "description": "The current status of the environment", "enum": ["normal", "allocated", "launching", "killed", "cancelled", "stopped"]}, "flags": {"type": "object", "description": "Environment configuration flags", "additionalProperties": {"type": "boolean"}}, "properties": {"type": "object", "description": "Environment PHP and server properties", "properties": {"version": {"type": "string", "description": "PHP version"}, "max_execution_time": {"type": "integer", "description": "Maximum execution time in seconds"}, "memory_limit": {"type": "integer", "description": "Memory limit in MB"}, "apcu": {"type": "integer", "description": "APCu cache size in MB"}, "client_max_body_size": {"type": "integer", "description": "Maximum client body size in MB"}, "max_input_vars": {"type": "integer", "description": "Maximum number of input variables"}, "max_post_size": {"type": "integer", "description": "Maximum POST size in MB"}, "memcached_limit": {"type": "integer", "description": "Memcached limit in MB"}, "upload_max_filesize": {"type": "integer", "description": "Maximum upload file size in MB"}, "operating_system": {"type": "string", "description": "Operating system codename"}}}, "reference": {"type": "string", "description": "The code reference (branch, tag, or commit) deployed to this environment"}, "code_switch_status": {"type": "string", "description": "The status of the Switch Code action", "enum": ["IDLE", "IN_PROGRESS"]}, "ssh_url": {"type": "string", "format": "uri", "description": "The SSH connection string for accessing this environment"}}, "required": ["id", "name", "label", "status", "flags", "properties", "reference", "code_switch_status", "ssh_url"]}, "Environment_Service_API_EmbeddedCodebase": {"type": "object", "description": "Embedded codebase resource", "properties": {"id": {"type": "string", "description": "The unique identifier of the codebase"}}, "required": ["id"]}, "Environment_Service_API_Deployment": {"type": "object", "description": "Deployment properties", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the deployment."}, "environment_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Identifier of the environment this deployment belongs to."}, "status": {"type": "string", "description": "Current status of the deployment.", "enum": ["waiting", "received", "started", "done", "failed", "error", "killed"]}, "code_reference": {"type": "string", "description": "The code reference (e.g. branch or tag) deployed."}, "run_hooks": {"type": "boolean", "description": "Whether deployment hooks were run."}, "hooks_argument": {"type": ["string", "null"], "description": "Additional arguments passed to deployment hooks."}, "created_at": {"type": "string", "format": "date-time", "description": "Timestamp when the deployment was created."}, "started_at": {"type": ["string", "null"], "format": "date-time", "description": "Timestamp when the deployment started."}, "completed_at": {"type": ["string", "null"], "format": "date-time", "description": "Timestamp when the deployment completed."}, "sender_id": {"type": ["string", "null"], "description": "Identifier of the user or system that initiated the deployment."}, "logs": {"type": ["string", "null"], "description": "Deployment log output."}}, "required": ["id", "environment_id", "status", "code_reference", "run_hooks", "created_at"]}, "Environment_Service_API_CodeDeploy": {"type": "object", "properties": {"concurrency": {"type": "integer", "minimum": 1, "maximum": 100, "description": "Maximum number of concurrent code deploys allowed for the environment."}}, "required": ["concurrency"]}, "Environment_Service_API_Domain": {"type": "object", "description": "Domain properties", "properties": {"name": {"type": "string", "description": "The domain name."}, "is_managed": {"type": "boolean", "description": "Whether the domain is managed by Acquia."}}, "required": ["name", "is_managed"]}, "Environment_Service_API_DomainStatus": {"type": "object", "description": "Domain DNS status properties", "properties": {"hostname": {"type": "string", "description": "The domain name."}, "site_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Identifier of the site this domain belongs to."}, "environment_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Identifier of the environment this domain belongs to."}, "ip_addresses": {"type": "array", "description": "List of IP addresses resolving for this domain.", "items": {"type": "string"}}, "cnames": {"type": "array", "description": "List of CNAME records resolving for this domain.", "items": {"type": "string"}}, "flags": {"type": "object", "description": "Status flags for the domain.", "properties": {"default": {"type": "boolean", "description": "Whether this is the default domain."}, "active": {"type": "boolean", "description": "Whether the domain is active."}, "dns_resolves": {"type": "boolean", "description": "Whether the domain DNS resolves correctly."}, "acquia_hosted": {"type": "boolean", "description": "Whether the domain is hosted on Acquia infrastructure."}}, "required": ["default", "active", "dns_resolves", "acquia_hosted"]}}, "required": ["hostname", "site_id", "environment_id", "ip_addresses", "cnames", "flags"]}, "Environment_Service_API_Database": {"type": "object", "description": "Database properties", "properties": {"database_name": {"type": "string", "description": "The name of the database."}, "database_role": {"type": "string", "description": "The role of the database (e.g. the site username)."}}, "required": ["database_name", "database_role"]}, "Environment_Service_API_DatabaseConnection": {"type": "object", "description": "Database connection credential properties", "properties": {"db_host": {"type": "string", "description": "The database host."}, "name": {"type": "string", "description": "The database name."}, "password": {"type": "string", "description": "The database password."}, "user_name": {"type": "string", "description": "The database username."}, "ssh_host": {"type": "string", "description": "The SSH host for tunneling to the database."}}, "required": ["db_host", "name", "password", "user_name", "ssh_host"]}, "Environment_Service_API_DatabaseBackup": {"type": "object", "description": "Database backup properties", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the database backup."}, "database_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Identifier of the database this backup belongs to."}, "created_at": {"type": "string", "format": "date-time", "description": "Timestamp when the backup was created."}, "type": {"type": "string", "enum": ["DAILY", "ON_DEMAND"], "description": "The type of backup."}}, "required": ["id", "database_id", "created_at", "type"]}, "Environment_Service_API_EgressIp": {"type": "object", "description": "Egress IP properties", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the egress IP."}, "status": {"type": "string", "description": "Current status of the egress IP."}, "ipv4": {"type": "string", "description": "The IPv4 address."}, "ipv6": {"type": ["string", "null"], "description": "The IPv6 address, if assigned."}, "flags": {"type": "object", "description": "Status flags for the egress IP.", "additionalProperties": {"type": "boolean"}}}, "required": ["id", "status", "ipv4", "flags"]}, "Environment_Service_API_TrustedProxies": {"type": "object", "description": "Trusted proxy configuration properties", "properties": {"cidrs_ipv4": {"type": "array", "description": "List of trusted IPv4 CIDR blocks.", "items": {"type": "string"}}, "cidrs_ipv6": {"type": "array", "description": "List of trusted IPv6 CIDR blocks.", "items": {"type": "string"}}, "associated_cdns": {"type": "object", "description": "Map of CDN configurations associated with this environment, keyed by CDN name.", "additionalProperties": {"type": "object", "properties": {"label": {"type": "string", "description": "Display label for the CDN."}, "is_enabled": {"type": "boolean", "description": "Whether the CDN is enabled."}}, "required": ["label", "is_enabled"]}}}, "required": ["cidrs_ipv4", "cidrs_ipv6", "associated_cdns"]}, "Environment_Service_API_PrivateNetwork": {"type": "object", "description": "Private network reference properties", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the private network."}, "label": {"type": ["string", "null"], "description": "Human-readable label for the private network."}}, "required": ["id"]}, "Environment_Service_API_DomainPattern": {"type": "object", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the domain pattern."}, "pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].acme.com/app). The [site-name] token is mandatory; [environment-name] is optional at environment level. Domain rules (enforced in service layer): \u2264 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] \u2264 14 chars). One pattern per environment.\n", "example": "[site-name].acme.com"}}, "required": ["id", "pattern"]}, "Environment_Service_API_HalLink": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "Environment_Service_API_HalItem": {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"$ref": "#/components/schemas/Environment_Service_API_HalLink"}}, "required": ["self"], "additionalProperties": {"$ref": "#/components/schemas/Environment_Service_API_HalLink"}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, "Environment_Service_API_HalCollection": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalItem"}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "Environment_Service_API_PaginatedCollection": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"$ref": "#/components/schemas/Environment_Service_API_HalLink", "description": "Link to the previous page (templated)"}, "next": {"$ref": "#/components/schemas/Environment_Service_API_HalLink", "description": "Link to the next page (templated)"}, "offset": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"$ref": "#/components/schemas/Environment_Service_API_HalLink"}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, "Environment_Service_API_FilteredCollection": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"$ref": "#/components/schemas/Environment_Service_API_HalLink"}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, "Environment_Service_API_ValidationError": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "Environment_Service_API_Error": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, "Environment_Service_API_UnauthorizedError": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "Environment_Service_API_ForbiddenError": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "Environment_Service_API_NotFoundError": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "Environment_Service_API_InternalServerError": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "Environment_Service_API_Message": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalItem"}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, "Environment_Service_API_InvalidOperationError": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "Environment_Service_API_SortedCollection": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"$ref": "#/components/schemas/Environment_Service_API_HalLink"}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, "SSH_Key_Service_API_HalLink": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}, "SSH_Key_Service_API_HalItem": {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"$ref": "#/components/schemas/SSH_Key_Service_API_HalLink"}}, "required": ["self"], "additionalProperties": {"$ref": "#/components/schemas/SSH_Key_Service_API_HalLink"}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, "SSH_Key_Service_API_HalCollection": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_HalItem"}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "SSH_Key_Service_API_PaginatedCollection": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"$ref": "#/components/schemas/SSH_Key_Service_API_HalLink", "description": "Link to the previous page (templated)"}, "next": {"$ref": "#/components/schemas/SSH_Key_Service_API_HalLink", "description": "Link to the next page (templated)"}, "offset": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_HalLink"}, {"properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_HalLink"}, {"properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"$ref": "#/components/schemas/SSH_Key_Service_API_HalLink"}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}]}, "SSH_Key_Service_API_FilteredCollection": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_HalLink"}, {"properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering."}}, "additionalProperties": {"$ref": "#/components/schemas/SSH_Key_Service_API_HalLink"}}}}]}, "SSH_Key_Service_API_SortedCollection": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_HalLink"}, {"properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting."}}, "additionalProperties": {"$ref": "#/components/schemas/SSH_Key_Service_API_HalLink"}}}}]}, "SSH_Key_Service_API_SshKey": {"allOf": [{"type": "object", "required": ["id", "label", "public_key", "fingerprint", "created_at", "user_id"], "description": "Details an SSH key.", "properties": {"id": {"type": "string", "description": "The unique identifier of the SSH key.", "pattern": "^[a-zA-Z0-9-]+$"}, "label": {"type": "string", "description": "The human-readable key label."}, "public_key": {"type": "string", "description": "The public key.", "minLength": 64}, "fingerprint": {"type": "string", "description": "The public key fingerprint.", "pattern": "^[A-Za-z0-9:+/=.-]+$"}, "created_at": {"type": "string", "format": "date-time", "description": "The key creation date."}, "user_id": {"type": "string", "description": "The unique identifier of the user who owns this SSH key.", "pattern": "^[a-zA-Z0-9-]+$"}}}, {"$ref": "#/components/schemas/SSH_Key_Service_API_HalItem"}]}, "SSH_Key_Service_API_SshKeys": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_HalCollection"}, {"$ref": "#/components/schemas/SSH_Key_Service_API_PaginatedCollection"}, {"$ref": "#/components/schemas/SSH_Key_Service_API_FilteredCollection"}, {"$ref": "#/components/schemas/SSH_Key_Service_API_SortedCollection"}, {"type": "object", "description": "A collection of SSH keys.", "properties": {"_embedded": {"type": "object", "description": "A collection of SSH keys matching the request parameters.", "properties": {"items": {"type": "array", "items": {"$ref": "#/components/schemas/SSH_Key_Service_API_SshKey"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "SSH_Key_Service_API_Message": {"allOf": [{"type": "object", "required": ["message"], "properties": {"message": {"type": "string", "description": "The human-friendly confirmation of the operation."}}}, {"$ref": "#/components/schemas/SSH_Key_Service_API_HalItem"}]}, "SSH_Key_Service_API_ValidationError": {"type": "object", "required": ["error", "message"], "description": "A validation error.", "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "object", "description": "The validation error message keyed by its field or group name.", "additionalProperties": {"type": "string"}}}}, "SSH_Key_Service_API_Error": {"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, "SSH_Key_Service_API_UnauthorizedError": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "SSH_Key_Service_API_ForbiddenError": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "SSH_Key_Service_API_NotFoundError": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "SSH_Key_Service_API_InvalidOperationError": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "SSH_Key_Service_API_InternalServerError": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "Site_Service_API_Site": {"type": "object", "description": "A Site resource", "properties": {"id": {"type": "string", "description": "The unique identifier of the site", "pattern": "^[a-zA-Z0-9-]+$", "example": "12345678-1234-1234-1234-123456789012"}, "name": {"type": "string", "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", "minLength": 1, "maxLength": 14, "pattern": "^[a-z][a-z0-9]*$", "example": "mysite"}, "label": {"type": "string", "description": "The human-readable label of the site", "minLength": 1, "maxLength": 50, "example": "My Site 1"}, "description": {"type": "string", "description": "A description of the site", "maxLength": 512, "example": "A production site for the marketing team."}, "codebase_id": {"type": "string", "description": "The unique identifier of the codebase this site belongs to", "pattern": "^[a-zA-Z0-9-]+$", "example": "550e8400-e29b-41d4-a716-446655441210"}, "status": {"type": "string", "description": "The current lifecycle status of the site. ready indicates the site is active and operational. marked-for-deletion indicates the site has been scheduled for deletion and can still be recovered.\n", "enum": ["ready", "marked-for-deletion"], "example": "ready"}, "delete_at": {"type": "string", "format": "date-time", "description": "ISO 8601 datetime indicating when the site is scheduled for deletion. Only present when status is marked-for-deletion.", "example": "2025-06-15T00:00:00Z"}}, "required": ["id", "name", "label", "codebase_id", "status"]}, "Site_Service_API_HalLink": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "Site_Service_API_HalItem": {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"$ref": "#/components/schemas/Site_Service_API_HalLink"}}, "required": ["self"], "additionalProperties": {"$ref": "#/components/schemas/Site_Service_API_HalLink"}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, "Site_Service_API_HalCollection": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_HalItem"}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "Site_Service_API_PaginatedCollection": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"$ref": "#/components/schemas/Site_Service_API_HalLink", "description": "Link to the previous page (templated)"}, "next": {"$ref": "#/components/schemas/Site_Service_API_HalLink", "description": "Link to the next page (templated)"}, "offset": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"$ref": "#/components/schemas/Site_Service_API_HalLink"}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, "Site_Service_API_FilteredCollection": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"$ref": "#/components/schemas/Site_Service_API_HalLink"}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, "Site_Service_API_SortedCollection": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"$ref": "#/components/schemas/Site_Service_API_HalLink"}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, "Site_Service_API_ValidationError": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "Site_Service_API_Error": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, "Site_Service_API_UnauthorizedError": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "Site_Service_API_ForbiddenError": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "Site_Service_API_InternalServerError": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "Site_Service_API_Message": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_HalItem"}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, "Site_Service_API_NotFoundError": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "Site_Service_API_InvalidOperationError": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "Federated_Authentication_API_IdentityProvider": {"type": "object", "properties": {"identity_provider_id": {"type": "string", "description": "Unique identifier for the identity provider."}, "label": {"type": "string", "description": "The name of the Identity Provider."}, "subscription_id": {"type": "string", "description": "Unique identifier for the subscription that the Identity Provider belongs to."}, "idp_entity_id": {"type": "string", "format": "uri", "description": "The Identity Provider Entity ID."}, "sp_entity_id": {"type": "string", "format": "uri", "description": "The Service Provider Entity ID."}, "sso_url": {"type": "string", "format": "uri", "description": "The Single Sign-On URL for the Identity Provider."}, "certificate": {"type": "string", "description": "The X.509 certificate used for SAML authentication."}, "created_at": {"type": "string", "format": "date-time", "description": "Timestamp when the Identity Provider was created."}}, "required": ["identity_provider_id", "label", "subscription_id", "idp_entity_id", "sp_entity_id", "sso_url", "certificate", "created_at"]}, "Federated_Authentication_API_SsoDomain": {"type": "object", "properties": {"domain_id": {"type": "string", "description": "Unique identifier for the domain."}, "domain": {"type": "string", "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", "description": "The domain name (e.g., \"acme.com\")."}, "subscription_id": {"type": "string", "description": "Unique identifier for the subscription that the domain belongs to."}, "health": {"type": "object", "description": "The overall verification health of the domain. Uses the same code semantics as the platform email domain-verification system: `200` verified, `202` verification pending or in progress, `404` DNS record not found or could not be validated.", "properties": {"code": {"type": "string", "enum": ["200", "202", "404"], "description": "Machine-readable verification status code. `200` \u2014 verified. `202` \u2014 verification pending or in progress; retry after propagation. `404` \u2014 DNS TXT record not found or does not match expected value."}, "summary": {"type": "string", "description": "Short human-readable label for the verification state (e.g., \"Verified\", \"Verification pending\", \"Missing DNS record\")."}, "details": {"type": "string", "description": "Actionable explanation of the current state. For `404`, describes what was checked and what the customer should do next."}}, "required": ["code", "summary", "details"]}, "verification_record": {"type": "object", "description": "DNS TXT record the customer must publish to verify domain ownership.", "properties": {"type": {"type": "string", "const": "TXT", "description": "DNS record type."}, "host": {"type": "string", "description": "DNS record host name."}, "value": {"type": "string", "description": "Expected DNS record value."}, "health": {"type": "object", "description": "Verification health specific to this DNS record. Anchors the failure reason to the exact record the customer needs to fix, matching the per-record health pattern used in platform email domain verification.", "properties": {"code": {"type": "string", "enum": ["200", "202", "404"], "description": "`200` \u2014 record found and value matches. `202` \u2014 check in progress. `404` \u2014 record not found or value does not match."}, "summary": {"type": "string", "description": "Short human-readable label for this record's verification state."}, "details": {"type": "string", "description": "Actionable explanation; for `404`, states what was checked and what to fix."}}, "required": ["code", "summary", "details"]}}, "required": ["type", "host", "value", "health"]}, "verified_at": {"type": "string", "format": "date-time", "description": "Timestamp when the domain was successfully verified. Present only when `health.code` is `200`."}}, "required": ["domain_id", "domain", "subscription_id", "health", "verification_record"]}, "Federated_Authentication_API_SsoPolicy": {"type": "object", "description": "SSO policy that enforces an Identity Provider for specific domains.", "properties": {"status": {"type": "string", "enum": ["enabled", "disabled"], "default": "disabled", "description": "The status of the SSO policy. When enabled, the policy enforces SSO for the specified domains. Defaults to disabled on creation."}, "_embedded": {"type": "object", "description": "Embedded resources for the SSO policy.", "properties": {"domains": {"type": "array", "description": "The SSO domains enforced by this policy, each with a self link back to the authoritative SsoDomain resource.", "items": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_SsoDomain"}, {"$ref": "#/components/schemas/Federated_Authentication_API_HalItem"}]}}}, "required": ["domains"]}}, "required": ["status", "_embedded"]}, "Federated_Authentication_API_HalLink": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "Federated_Authentication_API_HalItem": {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"$ref": "#/components/schemas/Federated_Authentication_API_HalLink"}}, "required": ["self"], "additionalProperties": {"$ref": "#/components/schemas/Federated_Authentication_API_HalLink"}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, "Federated_Authentication_API_HalCollection": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_HalItem"}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "Federated_Authentication_API_PaginatedCollection": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"$ref": "#/components/schemas/Federated_Authentication_API_HalLink", "description": "Link to the previous page (templated)"}, "next": {"$ref": "#/components/schemas/Federated_Authentication_API_HalLink", "description": "Link to the next page (templated)"}, "offset": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"$ref": "#/components/schemas/Federated_Authentication_API_HalLink"}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, "Federated_Authentication_API_FilteredCollection": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"$ref": "#/components/schemas/Federated_Authentication_API_HalLink"}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, "Federated_Authentication_API_SortedCollection": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"$ref": "#/components/schemas/Federated_Authentication_API_HalLink"}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, "Federated_Authentication_API_ValidationError": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "Federated_Authentication_API_Error": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, "Federated_Authentication_API_UnauthorizedError": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "Federated_Authentication_API_ForbiddenError": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "Federated_Authentication_API_NotFoundError": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "Federated_Authentication_API_InternalServerError": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "Federated_Authentication_API_Message": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_HalItem"}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, "Federated_Authentication_API_InvalidOperationError": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "Codebase_Service_API_Codebase": {"type": "object", "properties": {"id": {"type": "string", "description": "Unique identifier for the codebase"}, "label": {"type": "string", "description": "Human-readable label for the codebase"}, "region": {"type": "string", "description": "AWS region of the codebase"}, "vcs_url": {"type": "string", "format": "uri", "description": "VCS repository URL"}, "repository_id": {"type": "string", "description": "VCS repository identifier"}, "created_at": {"type": "string", "format": "date-time", "description": "Creation timestamp"}, "updated_at": {"type": "string", "format": "date-time", "description": "Last update timestamp"}, "description": {"type": "string", "description": "Description of the codebase"}, "flags": {"type": "object", "properties": {"is_active": {"type": "boolean", "description": "Whether the codebase is active"}, "is_meo": {"type": "boolean", "description": "Whether the codebase is MEO"}}, "required": ["is_active", "is_meo"], "description": "Feature flags for the codebase"}, "hash": {"type": "string", "description": "Codebase hash"}, "applications_total": {"type": "integer", "description": "Total number of applications linked to this codebase"}}, "required": ["id", "label", "region", "vcs_url", "repository_id", "created_at", "updated_at", "flags", "hash", "applications_total"]}, "Codebase_Service_API_CodebaseReference": {"type": "object", "properties": {"id": {"type": "string", "description": "Unique identifier for the reference"}, "name": {"type": "string", "description": "Name of the git reference"}, "type": {"type": "string", "enum": ["branch", "tag"], "description": "Type of the git reference"}}, "required": ["id", "name", "type"]}, "Codebase_Service_API_DomainPattern": {"type": "object", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the domain pattern."}, "pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].[environment-name].acme.com/app). Both [site-name] and [environment-name] tokens are mandatory at codebase level. Domain rules (enforced in service layer): \u2264 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] \u2264 14 chars, [environment-name] \u2264 10 chars). One pattern per codebase.\n", "example": "[site-name].[environment-name].acme.com"}}, "required": ["id", "pattern"]}, "Codebase_Service_API_HalLink": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "Codebase_Service_API_HalItem": {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"$ref": "#/components/schemas/Codebase_Service_API_HalLink"}}, "required": ["self"], "additionalProperties": {"$ref": "#/components/schemas/Codebase_Service_API_HalLink"}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, "Codebase_Service_API_HalCollection": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_HalItem"}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "Codebase_Service_API_PaginatedCollection": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"$ref": "#/components/schemas/Codebase_Service_API_HalLink", "description": "Link to the previous page (templated)"}, "next": {"$ref": "#/components/schemas/Codebase_Service_API_HalLink", "description": "Link to the next page (templated)"}, "offset": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"$ref": "#/components/schemas/Codebase_Service_API_HalLink"}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, "Codebase_Service_API_FilteredCollection": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"$ref": "#/components/schemas/Codebase_Service_API_HalLink"}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, "Codebase_Service_API_ValidationError": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "Codebase_Service_API_Error": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, "Codebase_Service_API_UnauthorizedError": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "Codebase_Service_API_ForbiddenError": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "Codebase_Service_API_InternalServerError": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "Codebase_Service_API_NotFoundError": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "Codebase_Service_API_Message": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_HalItem"}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, "Codebase_Service_API_InvalidOperationError": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "Codebase_Service_API_SortedCollection": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"$ref": "#/components/schemas/Codebase_Service_API_HalLink"}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}}, "securitySchemes": {"Failover_Service_API_BearerAuth": {"type": "http", "scheme": "bearer", "bearerFormat": "JWT", "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'"}, "API_Specs_API_BearerAuth": {"type": "http", "scheme": "bearer", "bearerFormat": "JWT", "description": "Bearer token authentication using a JWT."}, "CDN_API_BearerAuth": {"type": "http", "scheme": "bearer", "bearerFormat": "JWT", "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'"}, "Environment_Service_API_BearerAuth": {"type": "http", "scheme": "bearer", "bearerFormat": "JWT", "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'"}, "SSH_Key_Service_API_BearerAuth": {"type": "http", "scheme": "bearer", "bearerFormat": "JWT", "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'"}, "Site_Service_API_BearerAuth": {"type": "http", "scheme": "bearer", "bearerFormat": "JWT", "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'"}, "Federated_Authentication_API_BearerAuth": {"type": "http", "scheme": "bearer", "bearerFormat": "JWT", "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'"}, "Codebase_Service_API_BearerAuth": {"type": "http", "scheme": "bearer", "bearerFormat": "JWT", "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'"}}}} \ No newline at end of file diff --git a/src/CloudApi/CloudCredentials.php b/src/CloudApi/CloudCredentials.php index 7975910a..cdc20ad8 100644 --- a/src/CloudApi/CloudCredentials.php +++ b/src/CloudApi/CloudCredentials.php @@ -90,8 +90,8 @@ public function getBaseUri(): ?string /** * Base URI for Cloud API v3 (MEO) commands registered under `api:v3:*`. * Set `ACLI_CLOUD_API_V3_BASE_URI` to point to a specific environment: - * Dev: https://gateway.dev.api.acquia.io/v3 - * Stage: https://staging.api.acquia.com/v3 (tentative) + * QA: https://qa.api.acquia.com/v3 + * Stage: https://staging.api.acquia.com/v3 * Prod: TBD — hardcode here once confirmed */ public function getV3BaseUri(): ?string From 10d1a605f34ecc7ae0dc838c35c65fc4fb70862b Mon Sep 17 00:00:00 2001 From: Deepak Kumar Mishra Date: Thu, 30 Jul 2026 17:55:05 +0530 Subject: [PATCH 10/11] update spec. --- .github/workflows/update-v3-spec.yml | 15 +++++++++++---- assets/acquia-v3-spec.json | 2 +- src/Command/Api/ApiCommandHelper.php | 23 +++++++++++++++++++++++ 3 files changed, 35 insertions(+), 5 deletions(-) diff --git a/.github/workflows/update-v3-spec.yml b/.github/workflows/update-v3-spec.yml index cf77057a..f48ce0e6 100644 --- a/.github/workflows/update-v3-spec.yml +++ b/.github/workflows/update-v3-spec.yml @@ -14,11 +14,18 @@ jobs: steps: - uses: actions/checkout@v7 - - name: Download latest v3 spec + - uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Install Redocly CLI + run: npm install -g @redocly/cli@latest + + - name: Download and dereference v3 spec run: | - curl -fsSL https://staging.api.acquia.com/v3/openapi.yaml \ - | python3 -c "import sys,yaml,json; json.dump(yaml.safe_load(sys.stdin), sys.stdout)" \ - > assets/acquia-v3-spec.json + curl -fsSL https://staging.api.acquia.com/v3/openapi.yaml -o /tmp/acquia-v3-raw.yaml + redocly bundle --dereferenced /tmp/acquia-v3-raw.yaml -o /tmp/acquia-v3-deref.json + jq 'del(.paths["/openapi.yaml"])' /tmp/acquia-v3-deref.json > assets/acquia-v3-spec.json - name: Check for changes id: diff diff --git a/assets/acquia-v3-spec.json b/assets/acquia-v3-spec.json index 37da4cd6..9943d54f 100644 --- a/assets/acquia-v3-spec.json +++ b/assets/acquia-v3-spec.json @@ -1 +1 @@ -{"openapi": "3.1.1", "info": {"title": "Acquia Cloud Platform API", "version": "3.0.0", "description": "The Cloud Platform API includes over 200 endpoints to enhance developer workflow, website management, and provisioning capabilities.", "license": {"name": "Acquia Terms of Service", "url": "https://www.acquia.com/acquia/agreement"}, "contact": {"name": "Acquia", "url": "https://www.acquia.com/contact"}}, "servers": [{"url": "https://api.acquia.com/v3"}], "tags": [{"name": "Failover Groups", "description": "Failover group management", "x-displayName": "Failover Groups"}, {"name": "Environments", "description": "Environment configuration and lifecycle", "x-displayName": "Environments"}, {"name": "OpenAPI Specs", "description": "Acquia Cloud Platform API specification", "x-displayName": "OpenAPI Specs"}, {"name": "CDNs", "description": "CDN domain management and cache purge operations", "x-displayName": "CDNs"}, {"name": "Site Instances", "description": "Site instance management", "x-displayName": "Site Instances"}, {"name": "Deployments", "description": "Deployment management", "x-displayName": "Deployments"}, {"name": "Code Deploys", "description": "Code deploy operations", "x-displayName": "Code Deploys"}, {"name": "Domains", "description": "Domain management", "x-displayName": "Domains"}, {"name": "Site Instance Databases", "description": "Site instance database, connection, and backup management", "x-displayName": "Site Instance Databases"}, {"name": "Domain Patterns", "description": "Automated domain pattern management", "x-displayName": "Domain Patterns"}, {"name": "SSH Keys", "description": "SSH key management for user accounts", "x-displayName": "SSH Keys"}, {"name": "Sites", "description": "Site management", "x-displayName": "Sites"}, {"name": "Identity Providers", "description": "Federated SSO identity provider management", "x-displayName": "Identity Providers"}, {"name": "Codebases", "description": "Codebase management", "x-displayName": "Codebases"}, {"name": "Codebase References", "description": "Codebase branch and tag references", "x-displayName": "Codebase References"}], "paths": {"/failover-groups": {"get": {"summary": "Retrieves a collection of failover groups.", "operationId": "getFailoverGroups", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "failover-groups:list"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Failover Groups"], "description": "Retrieves a collection of failover groups. Use the `filter` parameter to scope results by source environment.\n\nFilter syntax:\n- By source environment: `filter=environment_id:`\n", "parameters": [{"$ref": "#/components/parameters/Failover_Service_API_Offset"}, {"$ref": "#/components/parameters/Failover_Service_API_Limit"}, {"$ref": "#/components/parameters/Failover_Service_API_Filter"}], "responses": {"200": {"$ref": "#/components/responses/Failover_Service_API_FailoverGroupCollection"}, "400": {"$ref": "#/components/responses/Failover_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Failover_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Failover_Service_API_ForbiddenError"}, "500": {"$ref": "#/components/responses/Failover_Service_API_InternalServerError"}}, "security": [{"Failover_Service_API_BearerAuth": []}]}, "post": {"summary": "Creates a new failover group.", "operationId": "createFailoverGroup", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "failover-groups:create"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Failover Groups"], "requestBody": {"$ref": "#/components/requestBodies/Failover_Service_API_CreateFailoverGroupRequest"}, "responses": {"202": {"$ref": "#/components/responses/Failover_Service_API_CreateFailoverGroupResponse"}, "400": {"$ref": "#/components/responses/Failover_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Failover_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Failover_Service_API_ForbiddenError"}, "409": {"$ref": "#/components/responses/Failover_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Failover_Service_API_InternalServerError"}}, "security": [{"Failover_Service_API_BearerAuth": []}]}}, "/failover-groups/{failoverGroupId}": {"get": {"summary": "Retrieves a failover group by ID.", "operationId": "findFailoverGroupByFailoverGroupId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "failover-groups:find"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Failover Groups"], "parameters": [{"$ref": "#/components/parameters/Failover_Service_API_FailoverGroupId"}], "responses": {"200": {"$ref": "#/components/responses/Failover_Service_API_FailoverGroup"}, "401": {"$ref": "#/components/responses/Failover_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Failover_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Failover_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Failover_Service_API_InternalServerError"}}, "security": [{"Failover_Service_API_BearerAuth": []}]}, "delete": {"summary": "Deletes a failover group by ID.", "operationId": "deleteFailoverGroupByFailoverGroupId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "failover-groups:delete"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Failover Groups"], "parameters": [{"$ref": "#/components/parameters/Failover_Service_API_FailoverGroupId"}], "responses": {"202": {"$ref": "#/components/responses/Failover_Service_API_DeleteFailoverGroupResponse"}, "401": {"$ref": "#/components/responses/Failover_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Failover_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Failover_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Failover_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Failover_Service_API_InternalServerError"}}, "security": [{"Failover_Service_API_BearerAuth": []}]}}, "/failover-groups/{failoverGroupId}/actions/failover": {"post": {"summary": "Initiates failover for a failover group.", "operationId": "failoverFailoverGroupByFailoverGroupId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "failover-groups:failover"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Failover Groups"], "parameters": [{"$ref": "#/components/parameters/Failover_Service_API_FailoverGroupId"}], "responses": {"202": {"$ref": "#/components/responses/Failover_Service_API_FailoverGroupFailoverResponse"}, "401": {"$ref": "#/components/responses/Failover_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Failover_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Failover_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Failover_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Failover_Service_API_InternalServerError"}}, "security": [{"Failover_Service_API_BearerAuth": []}]}}, "/failover-groups/{failoverGroupId}/actions/revert-failover": {"post": {"summary": "Initiates a revert failover for a failover group.", "operationId": "revertFailoverFailoverGroupByFailoverGroupId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "failover-groups:revert-failover"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Failover Groups"], "parameters": [{"$ref": "#/components/parameters/Failover_Service_API_FailoverGroupId"}], "responses": {"202": {"$ref": "#/components/responses/Failover_Service_API_FailoverGroupRevertFailoverResponse"}, "401": {"$ref": "#/components/responses/Failover_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Failover_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Failover_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Failover_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Failover_Service_API_InternalServerError"}}, "security": [{"Failover_Service_API_BearerAuth": []}]}}, "/failover-groups/{failoverGroupId}/actions/sync": {"post": {"summary": "Initiates a sync for a failover group.", "operationId": "syncFailoverGroupByFailoverGroupId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "failover-groups:sync"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Failover Groups"], "parameters": [{"$ref": "#/components/parameters/Failover_Service_API_FailoverGroupId"}], "responses": {"202": {"$ref": "#/components/responses/Failover_Service_API_FailoverGroupSyncResponse"}, "401": {"$ref": "#/components/responses/Failover_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Failover_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Failover_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Failover_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Failover_Service_API_InternalServerError"}}, "security": [{"Failover_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/multi-region-failover": {"get": {"summary": "Retrieves the multi-region failover status for an environment.", "operationId": "findMultiRegionFailoverByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:find-multi-region-failover"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Failover_Service_API_EnvironmentId"}], "responses": {"200": {"$ref": "#/components/responses/Failover_Service_API_MultiRegionFailoverStatus"}, "401": {"$ref": "#/components/responses/Failover_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Failover_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Failover_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Failover_Service_API_InternalServerError"}}, "security": [{"Failover_Service_API_BearerAuth": []}]}, "put": {"summary": "Enables multi-region failover for an environment.", "operationId": "saveMultiRegionFailoverByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:update-multi-region-failover"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Failover_Service_API_EnvironmentId"}], "requestBody": {"$ref": "#/components/requestBodies/Failover_Service_API_SaveMultiRegionFailoverRequest"}, "responses": {"202": {"$ref": "#/components/responses/Failover_Service_API_SaveMultiRegionFailoverResponse"}, "400": {"$ref": "#/components/responses/Failover_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Failover_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Failover_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Failover_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Failover_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Failover_Service_API_InternalServerError"}}, "security": [{"Failover_Service_API_BearerAuth": []}]}, "delete": {"summary": "Disables multi-region failover for an environment.", "operationId": "deleteMultiRegionFailoverByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:delete-multi-region-failover"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Failover_Service_API_EnvironmentId"}], "responses": {"202": {"$ref": "#/components/responses/Failover_Service_API_DeleteMultiRegionFailoverResponse"}, "401": {"$ref": "#/components/responses/Failover_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Failover_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Failover_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Failover_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Failover_Service_API_InternalServerError"}}, "security": [{"Failover_Service_API_BearerAuth": []}]}}, "/openapi.yaml": {"get": {"summary": "Gets the combined OpenAPI specification.", "description": "Returns the combined Acquia Cloud Platform OpenAPI specification as a YAML document.\nThis endpoint is publicly accessible and does not require authentication.\n", "operationId": "getOpenApiSpec", "security": [], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}}, "stability": "production", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "api-specs"}}, "tags": ["OpenAPI Specs"], "responses": {"200": {"description": "OK", "content": {"text/yaml": {"schema": {"type": "string", "description": "The combined Acquia Cloud Platform OpenAPI specification as a YAML document."}, "example": "openapi: '3.1.1'\ninfo:\n title: Acquia Cloud Platform API\n version: 3.0.0\n"}}}, "500": {"$ref": "#/components/responses/API_Specs_API_InternalServerError"}}}}, "/subscriptions/{subscriptionUuid}/domains": {"get": {"operationId": "getDomainsBySubscriptionUuid", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:list-domains"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Retrieves a collection of CDN domains for a subscription", "description": "Retrieves a paginated list of CDN domains for the specified subscription.\n\n**Filtering:**\n - Format: `field=value` or `fieldvalue`\n - AND logic: semicolon (`;`) \u2014 `status=active;application_name=my-app`\n - OR logic: comma (`,`) \u2014 `status=active,status=pending`\n\n**Sorting:**\n- Format: Comma-delimited fields. Prefix with `-` for descending.\n- Example: `domain,-created_at`\n", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_Offset"}, {"$ref": "#/components/parameters/CDN_API_Limit"}, {"$ref": "#/components/parameters/CDN_API_Filter"}, {"$ref": "#/components/parameters/CDN_API_Sort"}], "responses": {"200": {"$ref": "#/components/responses/CDN_API_DomainCollection"}, "400": {"$ref": "#/components/responses/CDN_API_ValidationError"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/domains/{domainName}": {"get": {"summary": "Retrieves a domain by domain name.", "description": "Retrieves the full details of a CDN domain within a subscription, identified by its fully qualified domain name.", "operationId": "findDomainBySubscriptionUuidAndDomainName", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:find-domain"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_DomainName"}], "responses": {"200": {"$ref": "#/components/responses/CDN_API_Domain"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/domains/{domainName}/actions/provision": {"post": {"operationId": "provisionDomainBySubscriptionUuidAndDomainName", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:provision-domain"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Provisions a domain for CDN services", "description": "Provisions a domain for CDN services within a subscription by associating it with an environment.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_DomainName"}], "requestBody": {"$ref": "#/components/requestBodies/CDN_API_ProvisionCdnForDomainRequest"}, "responses": {"202": {"$ref": "#/components/responses/CDN_API_DomainCdnProvisioningAccepted"}, "400": {"$ref": "#/components/responses/CDN_API_ValidationError"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "409": {"$ref": "#/components/responses/CDN_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/domains/{domainName}/actions/deprovision": {"post": {"operationId": "deprovisionDomainBySubscriptionUuidAndDomainName", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:deprovision-domain"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Deprovisions a domain from CDN services", "description": "Deprovisions a domain for CDN services within a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_DomainName"}], "responses": {"202": {"$ref": "#/components/responses/CDN_API_DomainCdnDeprovisioningAccepted"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "409": {"$ref": "#/components/responses/CDN_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/environments/{environmentId}/actions/purge-cdn": {"post": {"operationId": "purgeCdnByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:purge-cdn"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Creates a CDN cache purge request", "description": "Creates a request to purge cached content from the CDN for the specified environment.\n\n**Resource Types** (specified in the request body):\n- `urls` - Purge specific URLs\n- `tags` - Purge by cache tags\n- `domains` - Purge entire domains\n- `everything` - Purge all content in the environment\n", "parameters": [{"$ref": "#/components/parameters/CDN_API_EnvironmentId"}], "requestBody": {"$ref": "#/components/requestBodies/CDN_API_CreatePurgeRequest"}, "responses": {"202": {"$ref": "#/components/responses/CDN_API_PurgeAccepted"}, "400": {"$ref": "#/components/responses/CDN_API_ValidationError"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "409": {"$ref": "#/components/responses/CDN_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/config/security/rulesets": {"get": {"operationId": "getSecurityRuleSetsBySubscriptionUuid", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:list-security-rule-sets"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Retrieves a collection of security rulesets.", "description": "Retrieves security rulesets for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_Offset"}, {"$ref": "#/components/parameters/CDN_API_Limit"}], "responses": {"200": {"$ref": "#/components/responses/CDN_API_SecurityRuleSetCollection"}, "400": {"$ref": "#/components/responses/CDN_API_ValidationError"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/config/security/rulesets/{ruleSetId}": {"get": {"operationId": "findSecurityRuleSetBySubscriptionUuidAndRuleSetId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:find-security-rule-set"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Retrieves a security ruleset.", "description": "Retrieves a security ruleset for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_RuleSetId"}], "responses": {"200": {"$ref": "#/components/responses/CDN_API_SecurityRuleSet"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}, "put": {"operationId": "updateSecurityRuleSetBySubscriptionUuidAndRuleSetId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:update-security-rule-set"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Updates a security rulesets.", "description": "Updates a security rulesets for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_RuleSetId"}], "requestBody": {"$ref": "#/components/requestBodies/CDN_API_UpdateSecurityRuleSetRequest"}, "responses": {"200": {"$ref": "#/components/responses/CDN_API_SecurityRuleSetUpdated"}, "400": {"$ref": "#/components/responses/CDN_API_ValidationError"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "409": {"$ref": "#/components/responses/CDN_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/config/security/ip-rules": {"get": {"operationId": "getIpRulesBySubscriptionUuid", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:list-ip-rules"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Retrieves a collection of IP rules.", "description": "Retrieves IP rules for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_Filter"}, {"$ref": "#/components/parameters/CDN_API_Sort"}, {"$ref": "#/components/parameters/CDN_API_Offset"}, {"$ref": "#/components/parameters/CDN_API_Limit"}], "responses": {"200": {"$ref": "#/components/responses/CDN_API_IpRuleCollection"}, "400": {"$ref": "#/components/responses/CDN_API_ValidationError"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}, "post": {"operationId": "createIpRuleBySubscriptionUuid", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:create-ip-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Creates an IP rule.", "description": "Creates an IP rule for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}], "requestBody": {"$ref": "#/components/requestBodies/CDN_API_CreateIpRuleRequest"}, "responses": {"200": {"$ref": "#/components/responses/CDN_API_IpRuleCreated"}, "400": {"$ref": "#/components/responses/CDN_API_ValidationError"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "409": {"$ref": "#/components/responses/CDN_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/config/security/ip-rules/{ipRuleId}": {"get": {"operationId": "findIpRuleBySubscriptionUuidAndIpRuleId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:find-ip-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Retrieves an IP rule.", "description": "Retrieves an IP rule for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_IpRuleId"}], "responses": {"200": {"$ref": "#/components/responses/CDN_API_IpRule"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}, "put": {"operationId": "updateIpRuleBySubscriptionUuidAndIpRuleId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:update-ip-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Updates an IP rule.", "description": "Updates an IP rule for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_IpRuleId"}], "requestBody": {"$ref": "#/components/requestBodies/CDN_API_UpdateIpRuleRequest"}, "responses": {"200": {"$ref": "#/components/responses/CDN_API_IpRuleUpdated"}, "400": {"$ref": "#/components/responses/CDN_API_ValidationError"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "409": {"$ref": "#/components/responses/CDN_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}, "delete": {"operationId": "deleteIpRuleBySubscriptionUuidAndIpRuleId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:delete-ip-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Deletes an IP rule.", "description": "Deletes an IP rule for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_IpRuleId"}], "responses": {"200": {"$ref": "#/components/responses/CDN_API_IpRuleDeleted"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "409": {"$ref": "#/components/responses/CDN_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/config/security/custom-rules": {"get": {"operationId": "getCustomRulesBySubscriptionUuid", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:list-custom-rules"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Retrieves a collection of custom security rules.", "description": "Retrieves custom security rules for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_Offset"}, {"$ref": "#/components/parameters/CDN_API_Limit"}], "responses": {"200": {"$ref": "#/components/responses/CDN_API_CustomRuleCollection"}, "400": {"$ref": "#/components/responses/CDN_API_ValidationError"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}, "post": {"operationId": "createCustomRuleBySubscriptionUuid", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:create-custom-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Creates a custom security rule.", "description": "Creates a custom security rule for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}], "requestBody": {"$ref": "#/components/requestBodies/CDN_API_CreateCustomRuleRequest"}, "responses": {"200": {"$ref": "#/components/responses/CDN_API_CustomRuleCreated"}, "400": {"$ref": "#/components/responses/CDN_API_ValidationError"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "409": {"$ref": "#/components/responses/CDN_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/config/security/custom-rules/{customRuleId}": {"get": {"operationId": "findCustomRuleBySubscriptionUuidAndCustomRuleId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:find-custom-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Retrieves a custom security rule.", "description": "Retrieves a custom security rule for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_CustomRuleId"}], "responses": {"200": {"$ref": "#/components/responses/CDN_API_CustomRule"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}, "put": {"operationId": "updateCustomRuleBySubscriptionUuidAndCustomRuleId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:update-custom-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Updates a custom security rule.", "description": "Updates a custom security rule for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_CustomRuleId"}], "requestBody": {"$ref": "#/components/requestBodies/CDN_API_UpdateCustomRuleRequest"}, "responses": {"200": {"$ref": "#/components/responses/CDN_API_CustomRuleUpdated"}, "400": {"$ref": "#/components/responses/CDN_API_ValidationError"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "409": {"$ref": "#/components/responses/CDN_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}, "delete": {"operationId": "deleteCustomRuleBySubscriptionUuidAndCustomRuleId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:delete-custom-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Deletes a custom security rule.", "description": "Deletes a custom security rule for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_CustomRuleId"}], "responses": {"200": {"$ref": "#/components/responses/CDN_API_CustomRuleDeleted"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "409": {"$ref": "#/components/responses/CDN_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/config/security/rate-limiting-rules": {"get": {"operationId": "getRateLimitingRulesBySubscriptionUuid", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:list-rate-limiting-rules"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Retrieves a collection of rate limiting rules.", "description": "Retrieves rate limiting rules for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_Filter"}, {"$ref": "#/components/parameters/CDN_API_Sort"}, {"$ref": "#/components/parameters/CDN_API_Offset"}, {"$ref": "#/components/parameters/CDN_API_Limit"}], "responses": {"200": {"$ref": "#/components/responses/CDN_API_RateLimitingRuleCollection"}, "400": {"$ref": "#/components/responses/CDN_API_ValidationError"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}, "post": {"operationId": "createRateLimitingRuleBySubscriptionUuid", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:create-rate-limiting-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Creates a rate limiting rule.", "description": "Creates a rate limiting rule for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}], "requestBody": {"$ref": "#/components/requestBodies/CDN_API_CreateRateLimitingRuleRequest"}, "responses": {"200": {"$ref": "#/components/responses/CDN_API_RateLimitingRuleCreated"}, "400": {"$ref": "#/components/responses/CDN_API_ValidationError"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "409": {"$ref": "#/components/responses/CDN_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/config/security/rate-limiting-rules/{rateLimitingRuleId}": {"get": {"operationId": "findRateLimitingRuleBySubscriptionUuidAndRateLimitingRuleId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:find-rate-limiting-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Retrieves a rate limiting rule.", "description": "Retrieves a rate limiting rule for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_RateLimitingRuleId"}], "responses": {"200": {"$ref": "#/components/responses/CDN_API_RateLimitingRule"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}, "put": {"operationId": "updateRateLimitingRuleBySubscriptionUuidAndRateLimitingRuleId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:update-rate-limiting-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Updates a rate limiting rule.", "description": "Updates a rate limiting rule for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_RateLimitingRuleId"}], "requestBody": {"$ref": "#/components/requestBodies/CDN_API_UpdateRateLimitingRuleRequest"}, "responses": {"200": {"$ref": "#/components/responses/CDN_API_RateLimitingRuleUpdated"}, "400": {"$ref": "#/components/responses/CDN_API_ValidationError"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "409": {"$ref": "#/components/responses/CDN_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}, "delete": {"operationId": "deleteRateLimitingRuleBySubscriptionUuidAndRateLimitingRuleId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:delete-rate-limiting-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Deletes a rate limiting rule.", "description": "Deletes a rate limiting rule for a subscription.", "parameters": [{"$ref": "#/components/parameters/CDN_API_SubscriptionUuid"}, {"$ref": "#/components/parameters/CDN_API_RateLimitingRuleId"}], "responses": {"200": {"$ref": "#/components/responses/CDN_API_RateLimitingRuleDeleted"}, "401": {"$ref": "#/components/responses/CDN_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/CDN_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/CDN_API_NotFoundError"}, "409": {"$ref": "#/components/responses/CDN_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/CDN_API_InternalServerError"}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/codebases/{codebaseId}/environments": {"get": {"summary": "Retrieves a collection of environments for the specified codebase.", "operationId": "getEnvironmentsByCodebaseId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:list-environments"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_CodebaseId"}, {"$ref": "#/components/parameters/Environment_Service_API_Offset"}, {"$ref": "#/components/parameters/Environment_Service_API_Limit"}, {"$ref": "#/components/parameters/Environment_Service_API_Filter"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_FilterableEnvironmentCollection"}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/codebases/{codebaseId}/environments/{environmentId}": {"get": {"summary": "Retrieves details for an environment by codebase and environment ID.", "operationId": "findEnvironmentByCodebaseIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:find-environment"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_CodebaseId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_Environment"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/sites/{siteId}/environments": {"get": {"summary": "Retrieves a collection of environments for the specified site.", "operationId": "getEnvironmentsBySiteId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sites:list-environments"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_Offset"}, {"$ref": "#/components/parameters/Environment_Service_API_Limit"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_EnvironmentCollection"}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/private-networks/{privateNetworkId}/environments": {"get": {"summary": "Retrieves a collection of environments associated with the specified private network.", "operationId": "getEnvironmentsByPrivateNetworkId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "private-networks:list-environments"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_PrivateNetworkId"}, {"$ref": "#/components/parameters/Environment_Service_API_Offset"}, {"$ref": "#/components/parameters/Environment_Service_API_Limit"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_EnvironmentCollection"}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}": {"get": {"summary": "Get environment details.", "operationId": "findEnvironmentByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:find"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_Environment"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "put": {"summary": "Modifies properties settings for the specified environment.", "operationId": "updateEnvironmentByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:update"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "requestBody": {"$ref": "#/components/requestBodies/Environment_Service_API_UpdateEnvironmentRequest"}, "responses": {"202": {"description": "Environment update started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Environment update started.", "description": "Confirmation message that the environment update has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc"}}, "message": "Environment update started."}}}}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/actions/enable-protection-mode": {"post": {"summary": "Enable Environment Protection mode.", "operationId": "enableEnvironmentProtectionModeByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:enable-protection-mode"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"202": {"description": "Enable protection mode initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Environment protection mode enabled.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323"}}, "message": "Environment protection mode enabled."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/actions/disable-protection-mode": {"post": {"summary": "Disable Environment Protection mode.", "operationId": "disableEnvironmentProtectionModeByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:disable-protection-mode"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"202": {"description": "Disable protection mode initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Environment protection mode disabled.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323"}}, "message": "Environment protection mode disabled."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/actions/clear-caches": {"post": {"summary": "Clears caches for the specified environment.", "operationId": "clearEnvironmentCachesByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:clear-caches"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "requestBody": {"$ref": "#/components/requestBodies/Environment_Service_API_ClearCachesRequest"}, "responses": {"202": {"description": "Cache clear started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Varnish domain cache clear started.", "description": "Confirmation message that the cache clear has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc"}}, "message": "Varnish domain cache clear started."}}}}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/eips": {"get": {"summary": "Retrieves a collection of egress IPs for the specified environment.", "operationId": "getEgressIpsByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:list-egress-ips"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_Offset"}, {"$ref": "#/components/parameters/Environment_Service_API_Limit"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_EgressIpCollection"}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/private-network": {"get": {"summary": "Retrieves the private network associated with the specified environment.", "operationId": "findPrivateNetworkByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:find-private-network"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_PrivateNetwork"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "put": {"summary": "Associates the specified environment with a private network.", "operationId": "saveEnvironmentPrivateNetworkByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:associate-private-network"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "requestBody": {"$ref": "#/components/requestBodies/Environment_Service_API_AssociatePrivateNetworkRequest"}, "responses": {"202": {"description": "Private network association started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Associating private network started.", "description": "Confirmation message that the association has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/private-network"}}, "message": "Associating private network started."}}}}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "delete": {"summary": "Disassociates the specified environment from its private network.", "operationId": "deleteEnvironmentPrivateNetworkByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:disassociate-private-network"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"202": {"description": "Private network disassociation started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Disassociating environment from private network started.", "description": "Confirmation message that the disassociation has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/private-network"}}, "message": "Disassociating environment from private network started."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/trusted-proxies": {"get": {"summary": "Retrieves the trusted proxy configuration for the specified environment.", "operationId": "findTrustedProxiesByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:find-trusted-proxies"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_TrustedProxies"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "put": {"summary": "Updates the trusted proxy configuration for the specified environment.", "operationId": "updateTrustedProxiesByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:update-trusted-proxies"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "requestBody": {"$ref": "#/components/requestBodies/Environment_Service_API_UpdateTrustedProxiesRequest"}, "responses": {"200": {"description": "Trusted proxy configuration updated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Trusted Proxies updated successfully.", "description": "Confirmation message that the configuration has been updated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/trusted-proxies"}}, "message": "Trusted Proxies updated successfully."}}}}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/deployments": {"get": {"summary": "Retrieves a collection of deployments for the specified environment.", "operationId": "getDeploymentsByEnvironmentId", "tags": ["Deployments"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:list-deployments"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_Offset"}, {"$ref": "#/components/parameters/Environment_Service_API_Limit"}, {"$ref": "#/components/parameters/Environment_Service_API_Filter"}, {"$ref": "#/components/parameters/Environment_Service_API_Sort"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_DeploymentCollection"}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "post": {"summary": "Starts a deployment for the specified environment.", "operationId": "createDeploymentByEnvironmentId", "tags": ["Deployments"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:create-deployment"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "requestBody": {"$ref": "#/components/requestBodies/Environment_Service_API_StartDeploymentRequest"}, "responses": {"202": {"description": "Deployment started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Deployment started.", "description": "Confirmation message that the deployment has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3"}}, "message": "Deployment started."}}}}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/code-deploy": {"get": {"summary": "Retrieves the code deploy concurrency setting for the environment.", "operationId": "findCodeDeployByEnvironmentId", "tags": ["Code Deploys"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:find-code-deploy"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_CodeDeploy"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "put": {"summary": "Updates the code deploy concurrency setting for the environment.", "operationId": "updateCodeDeployByEnvironmentId", "tags": ["Code Deploys"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:update-code-deploy"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "requestBody": {"$ref": "#/components/requestBodies/Environment_Service_API_UpdateCodeDeployRequest"}, "responses": {"200": {"description": "Code deploy concurrency setting updated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Code deploy settings updated successfully.", "description": "Confirmation message that the concurrency setting has been updated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/code-deploy"}}, "message": "Code deploy settings updated successfully."}}}}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/site-instances": {"post": {"summary": "Associates a site with the specified environment.", "operationId": "createSiteInstanceByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:create-site-instance"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "requestBody": {"$ref": "#/components/requestBodies/Environment_Service_API_CreateSiteInstanceRequest"}, "responses": {"202": {"description": "Site instance creation started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instance creation started.", "description": "Confirmation message that site association has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323"}}, "message": "Site instance creation started."}}}}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/site-instances/actions/reorder": {"post": {"summary": "Updates the priority order of site instances for the environment.", "operationId": "reorderSiteInstancesByEnvironmentId", "tags": ["Site Instances"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:reorder-site-instances"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "requestBody": {"$ref": "#/components/requestBodies/Environment_Service_API_ReorderSiteInstancesRequest"}, "responses": {"200": {"description": "Site instances reordered successfully", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instances reordered successfully.", "description": "Confirmation message that the site instances have been reordered."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/site-instances"}}, "message": "Site instances reordered successfully."}}}}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}": {"get": {"summary": "Get site instance details.", "operationId": "findSiteInstanceBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:find"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_SiteInstance"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "delete": {"summary": "Dissociates a site and environment with no grace period.", "operationId": "deleteSiteInstanceBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:delete"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"202": {"description": "Site instance deletion started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instance deletion started.", "description": "Confirmation message that the deletion has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323"}}, "message": "Site instance deletion started."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/files": {"post": {"summary": "Copies files from one environment to another for the specified site instance.", "operationId": "copySiteInstanceFilesBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:copy-files"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "requestBody": {"$ref": "#/components/requestBodies/Environment_Service_API_CopySiteInstanceFilesRequest"}, "responses": {"202": {"description": "File copy started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "File copy started.", "description": "Confirmation message that the file copy has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323"}}, "message": "File copy started."}}}}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/actions/cancel": {"post": {"summary": "Dissociates a site and environment.", "operationId": "cancelSiteInstanceBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:cancel"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"202": {"description": "Site instance cancellation started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instance cancellation started.", "description": "Confirmation message that the cancellation has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323"}}, "message": "Site instance cancellation started."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/actions/enable-protection-mode": {"post": {"summary": "Enable Site Instance Protection mode.", "operationId": "enableSiteInstanceProtectionModeBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:enable-protection-mode"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"202": {"description": "Enable protection mode initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instance protection mode enabled.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323"}}, "message": "Site instance protection mode enabled."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/actions/disable-protection-mode": {"post": {"summary": "Disable Site Instance Protection mode.", "operationId": "disableSiteInstanceProtectionModeBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:disable-protection-mode"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"202": {"description": "Disable protection mode initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instance protection mode disabled.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323"}}, "message": "Site instance protection mode disabled."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/actions/inherit-protection-mode": {"post": {"summary": "Inherit Site Instance Protection mode.", "operationId": "inheritSiteInstanceProtectionModeBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:inherit-protection-mode"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"202": {"description": "Inherit protection mode initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instance protection mode inherited from environment.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323"}}, "message": "Site instance protection mode inherited from environment."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/actions/recover": {"post": {"summary": "Recovers a site instance that is scheduled for deletion", "operationId": "recoverSiteInstanceBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:recover"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"202": {"description": "Site instance restoration started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instance restoration started.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323"}, "parent": {"href": "https://api.acquia.com/v3/site-instances"}}, "message": "Site instance restoration started."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/actions/schedule-delete": {"post": {"summary": "Schedules a site instance for deletion.", "operationId": "scheduleDeleteSiteInstanceBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:schedule-delete"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"202": {"description": "Site instance deletion scheduled", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instance deletion scheduled.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323"}, "parent": {"href": "https://api.acquia.com/v3/site-instances"}}, "message": "Site instance deletion scheduled."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/domains": {"get": {"summary": "Retrieves a collection of domains for the specified site instance.", "operationId": "getDomainsBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:list-domains"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Domains"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_Offset"}, {"$ref": "#/components/parameters/Environment_Service_API_Limit"}, {"$ref": "#/components/parameters/Environment_Service_API_Filter"}, {"$ref": "#/components/parameters/Environment_Service_API_Sort"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_DomainCollection"}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/domains/{domainName}": {"get": {"summary": "Retrieves details for the specified domain on a site instance.", "operationId": "findDomainBySiteIdAndEnvironmentIdAndDomainName", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:find-domain"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Domains"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_DomainName"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_Domain"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "put": {"summary": "Adds a domain to the specified site instance.", "operationId": "saveDomainBySiteIdAndEnvironmentIdAndDomainName", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:update-domain"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Domains"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_DomainName"}], "responses": {"202": {"description": "Domain addition started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Domain addition started.", "description": "Confirmation message that the domain addition has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com"}}, "message": "Domain addition started."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "delete": {"summary": "Removes a domain from the specified site instance.", "operationId": "deleteDomainBySiteIdAndEnvironmentIdAndDomainName", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:delete-domain"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Domains"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_DomainName"}], "responses": {"202": {"description": "Domain removal started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Domain removal started.", "description": "Confirmation message that the domain removal has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com"}}, "message": "Domain removal started."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/domains/{domainName}/status": {"get": {"summary": "Retrieves the DNS status for the specified domain on a site instance.", "operationId": "findDomainStatusBySiteIdAndEnvironmentIdAndDomainName", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:find-domain-status"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Domains"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_DomainName"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_DomainStatus"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/database": {"get": {"summary": "Retrieves database details for the specified site instance.", "operationId": "findDatabaseBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:find-database"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instance Databases"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_Database"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "post": {"summary": "Copies a database from another environment to the specified site instance.", "operationId": "copySiteInstanceDatabaseBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:copy-database"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instance Databases"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "requestBody": {"$ref": "#/components/requestBodies/Environment_Service_API_CopySiteInstanceDatabaseRequest"}, "responses": {"202": {"description": "Database copy started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Database copy started.", "description": "Confirmation message that the database copy has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database"}}, "message": "Database copy started."}}}}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/database/connection": {"get": {"summary": "Retrieves database connection credentials for the specified site instance.", "operationId": "findDatabaseConnectionBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:find-database-connection"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instance Databases"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_DatabaseConnection"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/database/backups": {"get": {"summary": "Retrieves a collection of database backups for the specified site instance.", "operationId": "getDatabaseBackupsBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:list-database-backups"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instance Databases"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_Offset"}, {"$ref": "#/components/parameters/Environment_Service_API_Limit"}, {"$ref": "#/components/parameters/Environment_Service_API_Filter"}, {"$ref": "#/components/parameters/Environment_Service_API_Sort"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_DatabaseBackupCollection"}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "post": {"summary": "Creates a database backup for the specified site instance.", "operationId": "createDatabaseBackupBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:create-database-backup"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instance Databases"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"202": {"description": "Database backup creation started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Database backup started.", "description": "Confirmation message that the database backup has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups"}}, "message": "Database backup started."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/database/backups/{backupId}": {"get": {"summary": "Retrieves details for the specified database backup.", "operationId": "findDatabaseBackupBySiteIdAndEnvironmentIdAndBackupId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:find-database-backup"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instance Databases"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_BackupId"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_DatabaseBackup"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "delete": {"summary": "Deletes the specified database backup.", "operationId": "deleteDatabaseBackupBySiteIdAndEnvironmentIdAndBackupId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:delete-database-backup"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instance Databases"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_BackupId"}], "responses": {"202": {"description": "Database backup deletion started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Database backup deletion started.", "description": "Confirmation message that the deletion has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups/a1b2c3d4-e5f6-7890-abcd-ef1234567890"}}, "message": "Database backup deletion started."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/database/backups/{backupId}/actions/restore": {"post": {"summary": "Restores the specified database backup to the site instance.", "operationId": "restoreDatabaseBackupBySiteIdAndEnvironmentIdAndBackupId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:restore-database-backup"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instance Databases"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_BackupId"}], "responses": {"202": {"description": "Database backup restore started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Database restore started.", "description": "Confirmation message that the restore has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups/a1b2c3d4-e5f6-7890-abcd-ef1234567890"}}, "message": "Database restore started."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/deployments/{deploymentId}": {"get": {"summary": "Retrieves the status of a deployment by deployment ID.", "operationId": "findDeploymentByDeploymentId", "tags": ["Deployments"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "deployments:find"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_DeploymentId"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_Deployment"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/deployments/{deploymentId}/actions/stop": {"post": {"summary": "Stops a deployment by sending a stop request.", "operationId": "stopDeploymentByDeploymentId", "tags": ["Deployments"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "deployments:stop"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_DeploymentId"}], "responses": {"202": {"description": "Deployment stop initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Deployment stop initiated.", "description": "Confirmation message that the deployment stop has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3"}}, "message": "Deployment stop initiated."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/deployments/{deploymentId}/actions/terminate": {"post": {"summary": "Terminates a deployment immediately.", "operationId": "terminateDeploymentByDeploymentId", "tags": ["Deployments"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "deployments:terminate"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_DeploymentId"}], "responses": {"202": {"description": "Deployment termination is initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Deployment termination initiated.", "description": "Confirmation message that the deployment termination has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3"}}, "message": "Deployment termination initiated."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/actions/wipe": {"post": {"summary": "Wipes a site instance.", "operationId": "wipeSiteInstanceBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:wipe"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "responses": {"202": {"description": "Site instance wipe started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instance wipe started.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://cloud.acquia.com/api/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323"}, "parent": {"href": "https://cloud.acquia.com/api/site-instances"}}, "message": "Site instance wipe started."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/domain-patterns": {"get": {"summary": "Retrieves a collection of domain patterns for the specified environment.", "operationId": "getDomainPatternsByEnvironmentId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:list-domain-patterns"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_Offset"}, {"$ref": "#/components/parameters/Environment_Service_API_Limit"}, {"$ref": "#/components/parameters/Environment_Service_API_Sort"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_DomainPatternCollection"}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "post": {"summary": "Creates a domain pattern for the specified environment.", "operationId": "createDomainPatternByEnvironmentId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:create-domain-pattern"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}], "requestBody": {"$ref": "#/components/requestBodies/Environment_Service_API_CreateDomainPatternRequest"}, "responses": {"202": {"description": "Domain pattern creation initiated.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The domain pattern is being applied to all associated sites in this environment.", "description": "Confirmation message that the domain pattern is being applied."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111"}}, "message": "The domain pattern is being applied to all associated sites in this environment."}}}}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/domain-patterns/{patternId}": {"get": {"summary": "Retrieves a domain pattern by environment ID and pattern ID.", "operationId": "findDomainPatternByEnvironmentIdAndPatternId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:find-domain-pattern"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_PatternId"}], "responses": {"200": {"$ref": "#/components/responses/Environment_Service_API_DomainPattern"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "put": {"summary": "Updates a domain pattern for the specified environment.", "operationId": "updateDomainPatternByEnvironmentIdAndPatternId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:update-domain-pattern"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_PatternId"}], "requestBody": {"$ref": "#/components/requestBodies/Environment_Service_API_UpdateDomainPatternRequest"}, "responses": {"202": {"description": "Domain pattern update initiated.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The domain pattern update is being applied to all associated sites in this environment.", "description": "Confirmation message that the domain pattern update is being applied."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111"}}, "message": "The domain pattern update is being applied to all associated sites in this environment."}}}}, "400": {"$ref": "#/components/responses/Environment_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "delete": {"summary": "Deletes a domain pattern for the specified environment. Engineering role only.", "operationId": "deleteDomainPatternByEnvironmentIdAndPatternId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:delete-domain-pattern"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Environment_Service_API_PatternId"}], "responses": {"202": {"description": "Domain pattern deletion initiated. The 202 covers two async operations: (1) removal of the pattern record and (2) a bulk cleanup that disassociates any URLs already generated from this pattern on all associated site instances in the environment. Both operations complete before the final settled state is observable.\n", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The domain pattern is being removed from all associated sites in this environment.", "description": "Confirmation message that the domain pattern is being removed."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111"}}, "message": "The domain pattern is being removed from all associated sites in this environment."}}}}, "401": {"$ref": "#/components/responses/Environment_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Environment_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Environment_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Environment_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Environment_Service_API_InternalServerError"}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/ssh-keys": {"get": {"summary": "Gets a list of SSH keys.", "description": "Gets a list of all SSH keys accessible to the requester. Each key includes\na `user_id` field identifying the owner.\n\nTo look up the owner of an SSH key by fingerprint or public key, apply a\nmandatory filter: `GET /ssh-keys?filter=fingerprint%3D` or\n`GET /ssh-keys?filter=public_key%3D`. The matching key(s) will\ninclude the `user_id` of the owner.\n\nFilterable fields:\n* `label`\n* `fingerprint`\n* `public_key`\n* `user_id`\n\nSortable fields:\n* `label`\n", "operationId": "getSshKeys", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "ssh-keys:list"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "ssh-key-service"}}, "tags": ["SSH Keys"], "parameters": [{"$ref": "#/components/parameters/SSH_Key_Service_API_Offset"}, {"$ref": "#/components/parameters/SSH_Key_Service_API_Limit"}, {"$ref": "#/components/parameters/SSH_Key_Service_API_Filter"}, {"$ref": "#/components/parameters/SSH_Key_Service_API_Sort"}], "responses": {"200": {"$ref": "#/components/responses/SSH_Key_Service_API_SshKeyCollection"}, "400": {"$ref": "#/components/responses/SSH_Key_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/SSH_Key_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/SSH_Key_Service_API_ForbiddenError"}, "500": {"$ref": "#/components/responses/SSH_Key_Service_API_InternalServerError"}}, "security": [{"SSH_Key_Service_API_BearerAuth": []}]}, "post": {"summary": "Installs a new SSH key for the current user.", "description": "Installs a new SSH key for the current user.", "operationId": "createSshKey", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "ssh-keys:create"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "ssh-key-service"}}, "tags": ["SSH Keys"], "requestBody": {"$ref": "#/components/requestBodies/SSH_Key_Service_API_SshKeyRequestBody"}, "responses": {"202": {"description": "Accepted", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Added SSH key.", "description": "Confirmation message."}}}]}, "example": {"message": "Added SSH key.", "_links": {"self": {"href": "https://api.acquia.com/v3/ssh-keys/981b7910-2fe9-11e9-b210-d663bd873d93"}}}}}}, "400": {"$ref": "#/components/responses/SSH_Key_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/SSH_Key_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/SSH_Key_Service_API_ForbiddenError"}, "409": {"$ref": "#/components/responses/SSH_Key_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/SSH_Key_Service_API_InternalServerError"}}, "security": [{"SSH_Key_Service_API_BearerAuth": []}]}}, "/ssh-keys/{sshKeyId}": {"get": {"summary": "Gets an SSH key.", "description": "Gets an SSH key by SSH Key ID.", "operationId": "findSshKeyBySshKeyId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "ssh-keys:find"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "ssh-key-service"}}, "tags": ["SSH Keys"], "parameters": [{"$ref": "#/components/parameters/SSH_Key_Service_API_SshKeyId"}], "responses": {"200": {"$ref": "#/components/responses/SSH_Key_Service_API_SshKey"}, "401": {"$ref": "#/components/responses/SSH_Key_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/SSH_Key_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/SSH_Key_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/SSH_Key_Service_API_InternalServerError"}}, "security": [{"SSH_Key_Service_API_BearerAuth": []}]}, "delete": {"summary": "Deletes an SSH key.", "description": "Deletes an SSH key by SSH Key ID.", "operationId": "deleteSshKeyBySshKeyId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "ssh-keys:delete"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "ssh-key-service"}}, "tags": ["SSH Keys"], "parameters": [{"$ref": "#/components/parameters/SSH_Key_Service_API_SshKeyId"}], "responses": {"202": {"description": "Accepted", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Removed SSH key.", "description": "Confirmation message."}}}]}, "example": {"message": "Removed SSH key.", "_links": {"self": {"href": "https://api.acquia.com/v3/ssh-keys/1acbb1a5-e864-4b8e-a3f9-b1ed462afd25"}}}}}}, "401": {"$ref": "#/components/responses/SSH_Key_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/SSH_Key_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/SSH_Key_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/SSH_Key_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/SSH_Key_Service_API_InternalServerError"}}, "security": [{"SSH_Key_Service_API_BearerAuth": []}]}}, "/sites": {"get": {"summary": "Retrieves a list of sites accessible by the user.", "operationId": "getSites", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sites:list"}}}, "tags": ["Sites"], "parameters": [{"$ref": "#/components/parameters/Site_Service_API_Offset"}, {"$ref": "#/components/parameters/Site_Service_API_Limit"}, {"$ref": "#/components/parameters/Site_Service_API_Filter"}, {"$ref": "#/components/parameters/Site_Service_API_Sort"}], "responses": {"200": {"$ref": "#/components/responses/Site_Service_API_SiteCollection"}, "400": {"$ref": "#/components/responses/Site_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Site_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Site_Service_API_ForbiddenError"}, "500": {"$ref": "#/components/responses/Site_Service_API_InternalServerError"}}, "security": [{"Site_Service_API_BearerAuth": []}]}, "post": {"summary": "Creates a site for a codebase.", "operationId": "createSite", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sites:create"}}}, "tags": ["Sites"], "requestBody": {"$ref": "#/components/requestBodies/Site_Service_API_CreateSiteRequest"}, "responses": {"200": {"description": "Site created", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site creation started.", "description": "Confirmation message indicating site creation has been initiated"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890"}, "parent": {"href": "https://api.acquia.com/v3/sites"}}, "message": "Site creation started."}}}}, "400": {"$ref": "#/components/responses/Site_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Site_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Site_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Site_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Site_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Site_Service_API_InternalServerError"}}, "security": [{"Site_Service_API_BearerAuth": []}]}}, "/sites/{siteId}": {"get": {"summary": "Retrieves a site by its ID.", "operationId": "findSiteBySiteId", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sites:find"}}}, "tags": ["Sites"], "parameters": [{"$ref": "#/components/parameters/Site_Service_API_SiteId"}], "responses": {"200": {"$ref": "#/components/responses/Site_Service_API_Site"}, "401": {"$ref": "#/components/responses/Site_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Site_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Site_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Site_Service_API_InternalServerError"}}, "security": [{"Site_Service_API_BearerAuth": []}]}, "put": {"summary": "Updates a site by its ID.", "operationId": "updateSiteBySiteId", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sites:update"}}}, "tags": ["Sites"], "parameters": [{"$ref": "#/components/parameters/Site_Service_API_SiteId"}], "requestBody": {"$ref": "#/components/requestBodies/Site_Service_API_UpdateSiteRequest"}, "responses": {"200": {"description": "Site update accepted", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site update started.", "description": "Confirmation message indicating site update has been initiated"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites/12345678-1234-1234-1234-123456789012"}}, "message": "Site update started."}}}}, "400": {"$ref": "#/components/responses/Site_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Site_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Site_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Site_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Site_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Site_Service_API_InternalServerError"}}, "security": [{"Site_Service_API_BearerAuth": []}]}, "delete": {"summary": "Deletes a site by its ID.", "operationId": "deleteSiteBySiteId", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sites:delete"}}}, "tags": ["Sites"], "parameters": [{"$ref": "#/components/parameters/Site_Service_API_SiteId"}], "responses": {"202": {"description": "Site deletion accepted", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site deleted.", "description": "Confirmation message indicating the site has been deleted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites/550e8400-e29b-41d4-a716-446655440002"}}, "message": "Site deleted."}}}}, "401": {"$ref": "#/components/responses/Site_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Site_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Site_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Site_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Site_Service_API_InternalServerError"}}, "security": [{"Site_Service_API_BearerAuth": []}]}}, "/sites/{siteId}/actions/duplicate": {"post": {"summary": "Duplicates a site from another given site.", "operationId": "duplicateSiteBySiteId", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sites:duplicate"}}}, "tags": ["Sites"], "parameters": [{"$ref": "#/components/parameters/Site_Service_API_SiteId"}], "requestBody": {"$ref": "#/components/requestBodies/Site_Service_API_DuplicateSiteRequest"}, "responses": {"202": {"description": "Site duplication started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site duplication started.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890"}, "parent": {"href": "https://api.acquia.com/v3/sites"}}, "message": "Site duplication started."}}}}, "400": {"$ref": "#/components/responses/Site_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Site_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Site_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Site_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Site_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Site_Service_API_InternalServerError"}}, "security": [{"Site_Service_API_BearerAuth": []}]}}, "/sites/{siteId}/actions/recover": {"post": {"summary": "Recovers a site that is scheduled for deletion", "operationId": "recoverSiteBySiteId", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sites:recover"}}}, "tags": ["Sites"], "parameters": [{"$ref": "#/components/parameters/Site_Service_API_SiteId"}], "responses": {"202": {"description": "Site recovery started", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site recovery started.", "description": "Confirmation message indicating the site recovery has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites/11111111-1111-1111-1111-111111111111"}, "parent": {"href": "https://api.acquia.com/v3/sites"}}, "message": "Site recovery started."}}}}, "401": {"$ref": "#/components/responses/Site_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Site_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Site_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Site_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Site_Service_API_InternalServerError"}}, "security": [{"Site_Service_API_BearerAuth": []}]}}, "/sites/{siteId}/actions/schedule-delete": {"post": {"summary": "Schedules a site for deletion", "operationId": "scheduleDeleteSiteBySiteId", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sites:schedule-delete"}}}, "tags": ["Sites"], "parameters": [{"$ref": "#/components/parameters/Site_Service_API_SiteId"}], "responses": {"202": {"description": "Site deletion scheduled", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site deletion scheduled.", "description": "Confirmation message indicating the site deletion has been scheduled."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites/550e8400-e29b-41d4-a716-446655440002"}, "parent": {"href": "https://api.acquia.com/v3/sites"}}, "message": "Site deletion scheduled."}}}}, "401": {"$ref": "#/components/responses/Site_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Site_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Site_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Site_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Site_Service_API_InternalServerError"}}, "security": [{"Site_Service_API_BearerAuth": []}]}}, "/codebases/{codebaseId}/sites": {"get": {"summary": "Retrieves a list of sites associated with a codebase.", "operationId": "getSitesByCodebaseId", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:list-sites"}}}, "tags": ["Sites"], "parameters": [{"$ref": "#/components/parameters/Site_Service_API_CodebaseId"}, {"$ref": "#/components/parameters/Site_Service_API_Offset"}, {"$ref": "#/components/parameters/Site_Service_API_Limit"}, {"$ref": "#/components/parameters/Site_Service_API_Filter"}, {"$ref": "#/components/parameters/Site_Service_API_Sort"}], "responses": {"200": {"$ref": "#/components/responses/Site_Service_API_SiteCollection"}, "400": {"$ref": "#/components/responses/Site_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Site_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Site_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Site_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Site_Service_API_InternalServerError"}}, "security": [{"Site_Service_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionId}/sites": {"get": {"summary": "Retrieves a list of sites associated with a subscription.", "operationId": "getSitesBySubscriptionId", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:list-sites"}}}, "tags": ["Sites"], "parameters": [{"$ref": "#/components/parameters/Site_Service_API_SubscriptionId"}, {"$ref": "#/components/parameters/Site_Service_API_Offset"}, {"$ref": "#/components/parameters/Site_Service_API_Limit"}, {"$ref": "#/components/parameters/Site_Service_API_Filter"}, {"$ref": "#/components/parameters/Site_Service_API_Sort"}], "responses": {"200": {"$ref": "#/components/responses/Site_Service_API_SiteCollection"}, "400": {"$ref": "#/components/responses/Site_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Site_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Site_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Site_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Site_Service_API_InternalServerError"}}, "security": [{"Site_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/sites": {"get": {"summary": "Retrieves a list of sites associated with an environment.", "operationId": "getSitesByEnvironmentId", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:list-sites"}}}, "tags": ["Sites"], "parameters": [{"$ref": "#/components/parameters/Site_Service_API_EnvironmentId"}, {"$ref": "#/components/parameters/Site_Service_API_Offset"}, {"$ref": "#/components/parameters/Site_Service_API_Limit"}, {"$ref": "#/components/parameters/Site_Service_API_Filter"}, {"$ref": "#/components/parameters/Site_Service_API_Sort"}], "responses": {"200": {"$ref": "#/components/responses/Site_Service_API_SiteCollection"}, "400": {"$ref": "#/components/responses/Site_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Site_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Site_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Site_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Site_Service_API_InternalServerError"}}, "security": [{"Site_Service_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionId}/sso-domains": {"post": {"operationId": "createSsoDomainBySubscriptionId", "summary": "Create a new domain for federated SSO.", "tags": ["Domains"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:create-sso-domain"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_SubscriptionId"}], "requestBody": {"$ref": "#/components/requestBodies/Federated_Authentication_API_CreateSsoDomain"}, "responses": {"202": {"description": "Domain creation accepted. The domain is being added to your subscription. To complete verification, add the provided DNS TXT record and call the verify action.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Message"}, {"type": "object", "properties": {"message": {"const": "Domain creation has been accepted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-456"}}, "message": "Domain creation has been accepted."}}}}, "400": {"$ref": "#/components/responses/Federated_Authentication_API_ValidationError"}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Federated_Authentication_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}, "get": {"summary": "Return a list of domains for a subscription.", "operationId": "getSsoDomainsBySubscriptionId", "tags": ["Domains"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:list-sso-domains"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_SubscriptionId"}, {"$ref": "#/components/parameters/Federated_Authentication_API_Offset"}, {"$ref": "#/components/parameters/Federated_Authentication_API_Limit"}, {"$ref": "#/components/parameters/Federated_Authentication_API_Sort"}, {"$ref": "#/components/parameters/Federated_Authentication_API_Filter"}], "responses": {"200": {"$ref": "#/components/responses/Federated_Authentication_API_SsoDomainCollection"}, "400": {"$ref": "#/components/responses/Federated_Authentication_API_ValidationError"}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionId}/identity-providers": {"post": {"operationId": "createIdentityProviderBySubscriptionId", "summary": "Create a new Identity Provider.", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:create-identity-provider"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_SubscriptionId"}], "requestBody": {"$ref": "#/components/requestBodies/Federated_Authentication_API_CreateIdentityProvider"}, "responses": {"202": {"description": "Identity Provider creation initiated. The Identity Provider is being provisioned. Poll the Identity Provider resource to check when it becomes active.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Message"}, {"type": "object", "properties": {"message": {"const": "Identity Provider creation has been accepted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f"}}, "message": "Identity Provider creation has been accepted."}}}}, "400": {"$ref": "#/components/responses/Federated_Authentication_API_ValidationError"}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Federated_Authentication_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}, "get": {"summary": "Return a list of Identity Providers for a subscription.", "operationId": "getIdentityProvidersBySubscriptionId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:list-identity-providers"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_SubscriptionId"}, {"$ref": "#/components/parameters/Federated_Authentication_API_Offset"}, {"$ref": "#/components/parameters/Federated_Authentication_API_Limit"}, {"$ref": "#/components/parameters/Federated_Authentication_API_Sort"}, {"$ref": "#/components/parameters/Federated_Authentication_API_Filter"}], "responses": {"200": {"$ref": "#/components/responses/Federated_Authentication_API_IdentityProviderCollection"}, "400": {"$ref": "#/components/responses/Federated_Authentication_API_ValidationError"}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/sso-domains": {"get": {"summary": "Return a list of all accessible domains.", "operationId": "getSsoDomains", "tags": ["Domains"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sso-domains:list"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_Offset"}, {"$ref": "#/components/parameters/Federated_Authentication_API_Limit"}, {"$ref": "#/components/parameters/Federated_Authentication_API_Sort"}, {"$ref": "#/components/parameters/Federated_Authentication_API_Filter"}], "responses": {"200": {"$ref": "#/components/responses/Federated_Authentication_API_SsoDomainCollection"}, "400": {"$ref": "#/components/responses/Federated_Authentication_API_ValidationError"}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/sso-domains/{domainId}": {"get": {"summary": "Return details about a specific domain.", "operationId": "findSsoDomainBySsoDomainId", "tags": ["Domains"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sso-domains:find"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_SsoDomainId"}], "responses": {"200": {"$ref": "#/components/responses/Federated_Authentication_API_SsoDomain"}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}, "delete": {"summary": "Delete a domain.", "operationId": "deleteSsoDomainBySsoDomainId", "tags": ["Domains"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sso-domains:delete"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_SsoDomainId"}], "responses": {"202": {"description": "Domain deletion accepted. The domain is being deleted.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Message"}, {"type": "object", "properties": {"message": {"const": "Domain deletion has been accepted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-456"}}, "message": "Domain deletion has been accepted."}}}}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Federated_Authentication_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/sso-domains/{domainId}/actions/verify": {"post": {"summary": "Verify domain ownership via DNS TXT record.", "operationId": "verifySsoDomainBySsoDomainId", "tags": ["Domains"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sso-domains:verify"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_SsoDomainId"}], "responses": {"202": {"description": "Domain verification process initiated. The system will validate the DNS TXT record to confirm domain ownership. Poll the domain resource and check `health.code` to track progress: `202` in progress, `200` verified, `404` record not found.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Domain verification has been accepted.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-456"}}, "message": "Domain verification has been accepted."}}}}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Federated_Authentication_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/identity-providers": {"get": {"summary": "Return a list of all accessible Identity Providers.", "operationId": "getIdentityProviders", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:list"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_Offset"}, {"$ref": "#/components/parameters/Federated_Authentication_API_Limit"}, {"$ref": "#/components/parameters/Federated_Authentication_API_Sort"}, {"$ref": "#/components/parameters/Federated_Authentication_API_Filter"}], "responses": {"200": {"$ref": "#/components/responses/Federated_Authentication_API_IdentityProviderCollection"}, "400": {"$ref": "#/components/responses/Federated_Authentication_API_ValidationError"}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/identity-providers/{identityProviderId}": {"get": {"summary": "Return details about a specific Identity Provider.", "operationId": "findIdentityProviderByIdentityProviderId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:find"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_IdentityProviderId"}], "responses": {"200": {"$ref": "#/components/responses/Federated_Authentication_API_IdentityProvider"}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}, "put": {"summary": "Updates an Identity Provider.", "operationId": "updateIdentityProviderByIdentityProviderId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:update"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_IdentityProviderId"}], "requestBody": {"$ref": "#/components/requestBodies/Federated_Authentication_API_UpdateIdentityProvider"}, "responses": {"202": {"description": "Identity Provider update initiated. The Identity Provider configuration changes are being applied. Poll the Identity Provider resource to verify the changes.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Message"}, {"type": "object", "properties": {"message": {"const": "Identity Provider update has been accepted."}}}]}, "example": {"message": "Identity Provider update has been accepted.", "_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f"}}}}}}, "400": {"$ref": "#/components/responses/Federated_Authentication_API_ValidationError"}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Federated_Authentication_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}, "delete": {"summary": "Deletes an Identity Provider.", "operationId": "deleteIdentityProviderByIdentityProviderId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:delete"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_IdentityProviderId"}], "responses": {"202": {"description": "Identity Provider deletion accepted. The Identity Provider is being deleted.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Message"}, {"type": "object", "properties": {"message": {"const": "Identity Provider deletion has been accepted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f"}}, "message": "Identity Provider deletion has been accepted."}}}}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Federated_Authentication_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/identity-providers/{identityProviderId}/policies/sso": {"get": {"summary": "Get the SSO policy for an Identity Provider.", "operationId": "findIdentityProviderSSOPolicyByIdentityProviderId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:find-sso-policy"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_IdentityProviderId"}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_SsoPolicy"}, {"$ref": "#/components/schemas/Federated_Authentication_API_HalItem"}]}, "example": {"status": "disabled", "_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso"}}, "_embedded": {"domains": [{"domain_id": "dom-456", "domain": "acme.com", "subscription_id": "sub-123", "health": {"code": "200", "summary": "Verified", "details": "The DNS TXT record has been confirmed and the domain is verified."}, "verification_record": {"type": "TXT", "host": "_acquia-challenge.acme.com", "value": "abc123def456", "health": {"code": "200", "summary": "Verified", "details": "The TXT record at _acquia-challenge.acme.com matches the expected value."}}, "verified_at": "2026-04-15T10:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-456"}, "identity_providers": {"href": "https://api.acquia.com/v3/identity-providers?filter=domain_id%3Ddom-456"}}}, {"domain_id": "dom-789", "domain": "acme.corp", "subscription_id": "sub-123", "health": {"code": "200", "summary": "Verified", "details": "The DNS TXT record has been confirmed and the domain is verified."}, "verification_record": {"type": "TXT", "host": "_acquia-challenge.acme.corp", "value": "xyz789abc123", "health": {"code": "200", "summary": "Verified", "details": "The TXT record at _acquia-challenge.acme.corp matches the expected value."}}, "verified_at": "2026-04-20T09:00:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-789"}, "identity_providers": {"href": "https://api.acquia.com/v3/identity-providers?filter=domain_id%3Ddom-789"}}}]}}}}}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}, "post": {"summary": "Create the SSO policy for an Identity Provider.", "operationId": "createIdentityProviderSSOPolicyByIdentityProviderId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:create-sso-policy"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_IdentityProviderId"}], "requestBody": {"$ref": "#/components/requestBodies/Federated_Authentication_API_CreateSsoPolicyRequest"}, "responses": {"202": {"description": "SSO policy creation initiated. The policy is being activated. Poll the SSO policy resource to verify activation.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Message"}, {"type": "object", "properties": {"message": {"const": "SSO policy creation has been accepted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso"}}, "message": "SSO policy creation has been accepted."}}}}, "400": {"$ref": "#/components/responses/Federated_Authentication_API_ValidationError"}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Federated_Authentication_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}, "put": {"summary": "Update the SSO policy for an Identity Provider.", "operationId": "updateIdentityProviderSSOPolicyByIdentityProviderId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:update-sso-policy"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_IdentityProviderId"}], "requestBody": {"$ref": "#/components/requestBodies/Federated_Authentication_API_UpdateSsoPolicyRequest"}, "responses": {"202": {"description": "SSO policy update initiated. The policy changes are being applied. Poll the SSO policy resource to verify the changes.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Message"}, {"type": "object", "properties": {"message": {"const": "SSO policy update has been accepted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso"}}, "message": "SSO policy update has been accepted."}}}}, "400": {"$ref": "#/components/responses/Federated_Authentication_API_ValidationError"}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Federated_Authentication_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}, "delete": {"summary": "Delete the SSO policy for an Identity Provider.", "operationId": "deleteIdentityProviderSSOPolicyByIdentityProviderId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:delete-sso-policy"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_IdentityProviderId"}], "responses": {"202": {"description": "SSO policy deletion initiated. The policy is being deactivated. Poll the Identity Provider resource to verify the policy has been removed.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Message"}, {"type": "object", "properties": {"message": {"const": "SSO policy deletion has been accepted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso"}}, "message": "SSO policy deletion has been accepted."}}}}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Federated_Authentication_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/identity-providers/{identityProviderId}/policies/sso/actions/enable": {"post": {"summary": "Enable the SSO policy for an Identity Provider.", "operationId": "enableIdentityProviderSSOPolicyByIdentityProviderId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:enable-sso-policy"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_IdentityProviderId"}], "responses": {"202": {"description": "SSO policy enablement initiated. The policy is being enabled and will enforce domains. Poll the SSO policy resource to verify the status change.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Message"}, {"type": "object", "properties": {"message": {"const": "SSO policy enablement has been accepted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso"}}, "message": "SSO policy enablement has been accepted."}}}}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Federated_Authentication_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/identity-providers/{identityProviderId}/policies/sso/actions/disable": {"post": {"summary": "Disable the SSO policy for an Identity Provider.", "operationId": "disableIdentityProviderSSOPolicyByIdentityProviderId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:disable-sso-policy"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"$ref": "#/components/parameters/Federated_Authentication_API_IdentityProviderId"}], "responses": {"202": {"description": "SSO policy disablement initiated. The policy is being disabled and will no longer enforce domains. Poll the SSO policy resource to verify the status change.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Message"}, {"type": "object", "properties": {"message": {"const": "SSO policy disablement has been accepted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso"}}, "message": "SSO policy disablement has been accepted."}}}}, "401": {"$ref": "#/components/responses/Federated_Authentication_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Federated_Authentication_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Federated_Authentication_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Federated_Authentication_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Federated_Authentication_API_InternalServerError"}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/codebases": {"get": {"summary": "Retrieves a list of codebases accessible by the user.", "description": "Retrieves a paginated collection of codebases. Use the `filter` parameter to scope results by association.\n\nFilter syntax:\n- By application: `filter=application_id%3D` (e.g. `filter=application_id%3Dabc-123`)\n", "operationId": "getCodebases", "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:list"}, "mcp": {"enabled": false}, "ops": {"enabled": false}}}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "tags": ["Codebases"], "parameters": [{"$ref": "#/components/parameters/Codebase_Service_API_Offset"}, {"$ref": "#/components/parameters/Codebase_Service_API_Limit"}, {"$ref": "#/components/parameters/Codebase_Service_API_Filter"}], "responses": {"200": {"$ref": "#/components/responses/Codebase_Service_API_CodebaseCollection"}, "400": {"$ref": "#/components/responses/Codebase_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Codebase_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Codebase_Service_API_ForbiddenError"}, "500": {"$ref": "#/components/responses/Codebase_Service_API_InternalServerError"}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}}, "/codebases/{codebaseId}": {"get": {"summary": "Retrieves a codebase by its ID.", "operationId": "findCodebaseByCodebaseId", "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:find"}, "mcp": {"enabled": false}, "ops": {"enabled": false}}}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "tags": ["Codebases"], "parameters": [{"$ref": "#/components/parameters/Codebase_Service_API_CodebaseId"}], "responses": {"200": {"$ref": "#/components/responses/Codebase_Service_API_Codebase"}, "401": {"$ref": "#/components/responses/Codebase_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Codebase_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Codebase_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Codebase_Service_API_InternalServerError"}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}, "put": {"summary": "Updates a codebase by its ID.", "operationId": "updateCodebaseByCodebaseId", "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:update"}, "mcp": {"enabled": false}, "ops": {"enabled": false}}}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "tags": ["Codebases"], "parameters": [{"$ref": "#/components/parameters/Codebase_Service_API_CodebaseId"}], "requestBody": {"$ref": "#/components/requestBodies/Codebase_Service_API_UpdateCodebaseRequest"}, "responses": {"200": {"description": "Codebase updated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Codebase updated.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4"}}, "message": "Codebase updated."}}}}, "400": {"$ref": "#/components/responses/Codebase_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Codebase_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Codebase_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Codebase_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Codebase_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Codebase_Service_API_InternalServerError"}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}, "delete": {"summary": "Deletes a codebase by its ID.", "operationId": "deleteCodebaseByCodebaseId", "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:delete"}, "mcp": {"enabled": false}, "ops": {"enabled": false}}}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "tags": ["Codebases"], "parameters": [{"$ref": "#/components/parameters/Codebase_Service_API_CodebaseId"}], "responses": {"200": {"description": "Codebase deleted", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Codebase deleted.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4"}}, "message": "Codebase deleted."}}}}, "401": {"$ref": "#/components/responses/Codebase_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Codebase_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Codebase_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Codebase_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Codebase_Service_API_InternalServerError"}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}}, "/codebases/{codebaseId}/references": {"get": {"summary": "Retrieves a list of git references for a codebase.", "operationId": "getReferencesByCodebaseId", "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:list-references"}, "mcp": {"enabled": false}, "ops": {"enabled": false}}}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "tags": ["Codebase References"], "parameters": [{"$ref": "#/components/parameters/Codebase_Service_API_CodebaseId"}, {"$ref": "#/components/parameters/Codebase_Service_API_Offset"}, {"$ref": "#/components/parameters/Codebase_Service_API_Limit"}], "responses": {"200": {"$ref": "#/components/responses/Codebase_Service_API_CodebaseReferenceCollection"}, "400": {"$ref": "#/components/responses/Codebase_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Codebase_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Codebase_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Codebase_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Codebase_Service_API_InternalServerError"}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}}, "/codebases/{codebaseId}/references/{referenceName}": {"get": {"summary": "Retrieves a single git reference for a codebase.", "operationId": "findReferenceByCodebaseIdAndReferenceName", "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:find-reference"}, "mcp": {"enabled": false}, "ops": {"enabled": false}}}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "tags": ["Codebase References"], "parameters": [{"$ref": "#/components/parameters/Codebase_Service_API_CodebaseId"}, {"$ref": "#/components/parameters/Codebase_Service_API_ReferenceName"}], "responses": {"200": {"$ref": "#/components/responses/Codebase_Service_API_CodebaseReference"}, "401": {"$ref": "#/components/responses/Codebase_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Codebase_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Codebase_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Codebase_Service_API_InternalServerError"}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}}, "/codebases/{codebaseId}/domain-patterns": {"get": {"summary": "Retrieves a collection of domain patterns for the specified codebase.", "operationId": "getDomainPatternsByCodebaseId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:list-domain-patterns"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "parameters": [{"$ref": "#/components/parameters/Codebase_Service_API_CodebaseId"}, {"$ref": "#/components/parameters/Codebase_Service_API_Offset"}, {"$ref": "#/components/parameters/Codebase_Service_API_Limit"}, {"$ref": "#/components/parameters/Codebase_Service_API_Sort"}], "responses": {"200": {"$ref": "#/components/responses/Codebase_Service_API_DomainPatternCollection"}, "400": {"$ref": "#/components/responses/Codebase_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Codebase_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Codebase_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Codebase_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Codebase_Service_API_InternalServerError"}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}, "post": {"summary": "Creates a domain pattern for the specified codebase.", "operationId": "createDomainPatternByCodebaseId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:create-domain-pattern"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "parameters": [{"$ref": "#/components/parameters/Codebase_Service_API_CodebaseId"}], "requestBody": {"$ref": "#/components/requestBodies/Codebase_Service_API_CreateDomainPatternRequest"}, "responses": {"202": {"description": "Domain pattern creation initiated.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The domain pattern is being applied to all associated sites in this codebase.", "description": "Confirmation message that the domain pattern is being applied."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222"}}, "message": "The domain pattern is being applied to all associated sites in this codebase."}}}}, "400": {"$ref": "#/components/responses/Codebase_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Codebase_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Codebase_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Codebase_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Codebase_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Codebase_Service_API_InternalServerError"}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}}, "/codebases/{codebaseId}/domain-patterns/{patternId}": {"get": {"summary": "Retrieves a domain pattern by codebase ID and pattern ID.", "operationId": "findDomainPatternByCodebaseIdAndPatternId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:find-domain-pattern"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "parameters": [{"$ref": "#/components/parameters/Codebase_Service_API_CodebaseId"}, {"$ref": "#/components/parameters/Codebase_Service_API_PatternId"}], "responses": {"200": {"$ref": "#/components/responses/Codebase_Service_API_DomainPattern"}, "401": {"$ref": "#/components/responses/Codebase_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Codebase_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Codebase_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Codebase_Service_API_InternalServerError"}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}, "put": {"summary": "Updates a domain pattern for the specified codebase.", "operationId": "updateDomainPatternByCodebaseIdAndPatternId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:update-domain-pattern"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "parameters": [{"$ref": "#/components/parameters/Codebase_Service_API_CodebaseId"}, {"$ref": "#/components/parameters/Codebase_Service_API_PatternId"}], "requestBody": {"$ref": "#/components/requestBodies/Codebase_Service_API_UpdateDomainPatternRequest"}, "responses": {"202": {"description": "Domain pattern update initiated.", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The domain pattern update is being applied to all associated sites in this codebase.", "description": "Confirmation message that the domain pattern update is being applied."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222"}}, "message": "The domain pattern update is being applied to all associated sites in this codebase."}}}}, "400": {"$ref": "#/components/responses/Codebase_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Codebase_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Codebase_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Codebase_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Codebase_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Codebase_Service_API_InternalServerError"}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}, "delete": {"summary": "Deletes a domain pattern for the specified codebase. Engineering role only.", "operationId": "deleteDomainPatternByCodebaseIdAndPatternId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:delete-domain-pattern"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "parameters": [{"$ref": "#/components/parameters/Codebase_Service_API_CodebaseId"}, {"$ref": "#/components/parameters/Codebase_Service_API_PatternId"}], "responses": {"202": {"description": "Domain pattern deletion initiated. The 202 covers two async operations: (1) removal of the pattern record and (2) a bulk cleanup that disassociates any URLs already generated from this pattern on all associated site instances in the codebase. Both operations complete before the final settled state is observable.\n", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The domain pattern is being removed from all associated sites in this codebase.", "description": "Confirmation message that the domain pattern is being removed."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222"}}, "message": "The domain pattern is being removed from all associated sites in this codebase."}}}}, "401": {"$ref": "#/components/responses/Codebase_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Codebase_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Codebase_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Codebase_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Codebase_Service_API_InternalServerError"}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionId}/codebases": {"get": {"summary": "Retrieves a list of codebases for a subscription.", "operationId": "getCodebasesBySubscriptionId", "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:list-codebases"}, "mcp": {"enabled": false}, "ops": {"enabled": false}}}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "tags": ["Codebases"], "parameters": [{"$ref": "#/components/parameters/Codebase_Service_API_SubscriptionId"}, {"$ref": "#/components/parameters/Codebase_Service_API_Offset"}, {"$ref": "#/components/parameters/Codebase_Service_API_Limit"}, {"$ref": "#/components/parameters/Codebase_Service_API_Filter"}], "responses": {"200": {"$ref": "#/components/responses/Codebase_Service_API_SubscriptionCodebaseCollection"}, "400": {"$ref": "#/components/responses/Codebase_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Codebase_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Codebase_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Codebase_Service_API_NotFoundError"}, "500": {"$ref": "#/components/responses/Codebase_Service_API_InternalServerError"}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}, "post": {"summary": "Creates a new codebase for a subscription.", "operationId": "createCodebase", "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:create-codebase"}, "mcp": {"enabled": false}, "ops": {"enabled": false}}}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "tags": ["Codebases"], "parameters": [{"$ref": "#/components/parameters/Codebase_Service_API_SubscriptionId"}], "requestBody": {"$ref": "#/components/requestBodies/Codebase_Service_API_CreateCodebaseRequest"}, "responses": {"200": {"description": "Codebase created", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Codebase created.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4"}}, "message": "Codebase created."}}}}, "400": {"$ref": "#/components/responses/Codebase_Service_API_ValidationError"}, "401": {"$ref": "#/components/responses/Codebase_Service_API_UnauthorizedError"}, "403": {"$ref": "#/components/responses/Codebase_Service_API_ForbiddenError"}, "404": {"$ref": "#/components/responses/Codebase_Service_API_NotFoundError"}, "409": {"$ref": "#/components/responses/Codebase_Service_API_InvalidOperationError"}, "500": {"$ref": "#/components/responses/Codebase_Service_API_InternalServerError"}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}}}, "components": {"parameters": {"Failover_Service_API_environmentId": {"$ref": "#/components/parameters/Failover_Service_API_EnvironmentId"}, "Failover_Service_API_failoverGroupId": {"$ref": "#/components/parameters/Failover_Service_API_FailoverGroupId"}, "Failover_Service_API_Offset": {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, "Failover_Service_API_Limit": {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, "Failover_Service_API_Filter": {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}, "Failover_Service_API_FailoverGroupId": {"name": "failoverGroupId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the failover group."}, "Failover_Service_API_EnvironmentId": {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}, "CDN_API_SubscriptionUuid": {"name": "subscriptionUuid", "in": "path", "required": true, "description": "The unique identifier of the subscription.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, "CDN_API_DomainName": {"name": "domainName", "in": "path", "required": true, "description": "The fully qualified domain name.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?(\\.[a-zA-Z]{2,})+$"}}, "CDN_API_EnvironmentId": {"name": "environmentId", "in": "path", "required": true, "description": "The unique identifier of the environment.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, "CDN_API_RuleSetId": {"name": "ruleSetId", "in": "path", "required": true, "description": "The unique identifier of the security rule set.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, "CDN_API_IpRuleId": {"name": "ipRuleId", "in": "path", "required": true, "description": "The unique identifier of the IP rule.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, "CDN_API_CustomRuleId": {"name": "customRuleId", "in": "path", "required": true, "description": "The unique identifier of the custom security rule.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, "CDN_API_RateLimitingRuleId": {"name": "rateLimitingRuleId", "in": "path", "required": true, "description": "The unique identifier of the rate limiting rule.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, "CDN_API_Offset": {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, "CDN_API_Limit": {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, "CDN_API_Filter": {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}, "CDN_API_Sort": {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}, "Environment_Service_API_environmentId": {"$ref": "#/components/parameters/Environment_Service_API_EnvironmentId"}, "Environment_Service_API_siteId": {"$ref": "#/components/parameters/Environment_Service_API_SiteId"}, "Environment_Service_API_deploymentId": {"$ref": "#/components/parameters/Environment_Service_API_DeploymentId"}, "Environment_Service_API_codebaseId": {"$ref": "#/components/parameters/Environment_Service_API_CodebaseId"}, "Environment_Service_API_domainName": {"$ref": "#/components/parameters/Environment_Service_API_DomainName"}, "Environment_Service_API_backupId": {"$ref": "#/components/parameters/Environment_Service_API_BackupId"}, "Environment_Service_API_privateNetworkId": {"$ref": "#/components/parameters/Environment_Service_API_PrivateNetworkId"}, "Environment_Service_API_patternId": {"$ref": "#/components/parameters/Environment_Service_API_PatternId"}, "Environment_Service_API_CodebaseId": {"name": "codebaseId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Codebase identifier"}, "Environment_Service_API_Offset": {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, "Environment_Service_API_Limit": {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, "Environment_Service_API_Filter": {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}, "Environment_Service_API_EnvironmentId": {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}, "Environment_Service_API_SiteId": {"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the site."}, "Environment_Service_API_PrivateNetworkId": {"name": "privateNetworkId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Private network identifier"}, "Environment_Service_API_Sort": {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}, "Environment_Service_API_DomainName": {"name": "domainName", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*$"}, "description": "The fully-qualified domain name (e.g., www.example.com)."}, "Environment_Service_API_BackupId": {"name": "backupId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Database backup identifier"}, "Environment_Service_API_DeploymentId": {"name": "deploymentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the deployment."}, "Environment_Service_API_PatternId": {"name": "patternId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the domain pattern."}, "SSH_Key_Service_API_SshKeyId": {"name": "sshKeyId", "in": "path", "description": "The SSH key's unique identifier.", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "example": "981b7910-2fe9-11e9-b210-d663bd873d93"}, "SSH_Key_Service_API_Offset": {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, "SSH_Key_Service_API_Limit": {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, "SSH_Key_Service_API_Filter": {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals (default if no operator specified)\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `label=primary` - Filter by label equals primary\n- `fingerprint=@SHA256` - Filter by fingerprint containing \"SHA256\"\n- `label=primary;fingerprint=@SHA256` - label is primary AND fingerprint contains SHA256\n- `label=primary,label=backup` - label is primary OR backup\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "label=primary;fingerprint=@SHA256"}, "SSH_Key_Service_API_Sort": {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}, "Site_Service_API_siteId": {"$ref": "#/components/parameters/Site_Service_API_SiteId"}, "Site_Service_API_codebaseId": {"$ref": "#/components/parameters/Site_Service_API_CodebaseId"}, "Site_Service_API_subscriptionId": {"$ref": "#/components/parameters/Site_Service_API_SubscriptionId"}, "Site_Service_API_environmentId": {"$ref": "#/components/parameters/Site_Service_API_EnvironmentId"}, "Site_Service_API_Offset": {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, "Site_Service_API_Limit": {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, "Site_Service_API_Filter": {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}, "Site_Service_API_Sort": {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}, "Site_Service_API_SiteId": {"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "example": "12345678-1234-1234-1234-123456789012"}, "description": "Unique identifier for the site"}, "Site_Service_API_CodebaseId": {"name": "codebaseId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "example": "550e8400-e29b-41d4-a716-446655441212"}, "description": "Unique identifier for the codebase"}, "Site_Service_API_SubscriptionId": {"name": "subscriptionId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "example": "550e8300-e29b-41d4-a716-446655441212"}, "description": "Unique identifier for the subscription"}, "Site_Service_API_EnvironmentId": {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "example": "0ebce493-9d09-479d-a9a8-138a206fa687"}, "description": "Unique identifier for the environment"}, "Federated_Authentication_API_SubscriptionId": {"name": "subscriptionId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the subscription."}, "Federated_Authentication_API_SsoDomainId": {"name": "domainId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the domain."}, "Federated_Authentication_API_IdentityProviderId": {"name": "identityProviderId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the identity provider."}, "Federated_Authentication_API_Offset": {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, "Federated_Authentication_API_Limit": {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, "Federated_Authentication_API_Sort": {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}, "Federated_Authentication_API_Filter": {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}, "Codebase_Service_API_codebaseId": {"$ref": "#/components/parameters/Codebase_Service_API_CodebaseId"}, "Codebase_Service_API_patternId": {"$ref": "#/components/parameters/Codebase_Service_API_PatternId"}, "Codebase_Service_API_referenceName": {"$ref": "#/components/parameters/Codebase_Service_API_ReferenceName"}, "Codebase_Service_API_subscriptionId": {"$ref": "#/components/parameters/Codebase_Service_API_SubscriptionId"}, "Codebase_Service_API_Offset": {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, "Codebase_Service_API_Limit": {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, "Codebase_Service_API_Filter": {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}, "Codebase_Service_API_CodebaseId": {"name": "codebaseId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the codebase."}, "Codebase_Service_API_ReferenceName": {"name": "referenceName", "in": "path", "required": true, "description": "Name of the git reference (branch or tag). Slashes must be URL-encoded as `%2F` in the path (e.g., `feature%2Fbranch-name`).", "schema": {"type": "string", "pattern": "^[^/]+$"}}, "Codebase_Service_API_Sort": {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}, "Codebase_Service_API_PatternId": {"name": "patternId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the domain pattern."}, "Codebase_Service_API_SubscriptionId": {"name": "subscriptionId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the subscription"}}, "responses": {"Failover_Service_API_ForbiddenError": {"description": "Forbidden", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Failover_Service_API_ForbiddenError"}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "Failover_Service_API_InternalServerError": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Failover_Service_API_InternalServerError"}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}, "Failover_Service_API_NotFoundError": {"description": "Not Found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Failover_Service_API_NotFoundError"}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "Failover_Service_API_UnauthorizedError": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Failover_Service_API_UnauthorizedError"}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "Failover_Service_API_InvalidOperationError": {"description": "Conflict", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Failover_Service_API_InvalidOperationError"}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "Failover_Service_API_FailoverGroupCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_HalCollection"}, {"$ref": "#/components/schemas/Failover_Service_API_PaginatedCollection"}, {"$ref": "#/components/schemas/Failover_Service_API_FilteredCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_FailoverGroup"}, {"$ref": "#/components/schemas/Failover_Service_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"failover_group_collection": {"summary": "Failover group collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/failover-groups?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/failover-groups?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/failover-groups?limit=2&offset=0{&filter}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", "name": "Primary Failover Group", "status": "normal", "pairs": [{"service_name": "my-application-service", "primary_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "failover_id": "f1e2d3c4-b5a6-7890-fedc-ba9876543210"}], "_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901"}}}]}}}}}}}, "Failover_Service_API_FailoverGroup": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_FailoverGroup"}, {"$ref": "#/components/schemas/Failover_Service_API_HalItem"}]}, "example": {"id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", "name": "Primary Failover Group", "status": "normal", "pairs": [{"service_name": "my-application-service", "primary_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "failover_id": "f1e2d3c4-b5a6-7890-fedc-ba9876543210"}], "_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901"}}}}}, "links": {"self": {"operationId": "findFailoverGroupByFailoverGroupId", "parameters": {"failoverGroupId": "$request.path.failoverGroupId"}}}}, "Failover_Service_API_MultiRegionFailoverStatus": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_MultiRegionFailoverStatus"}, {"$ref": "#/components/schemas/Failover_Service_API_HalItem"}]}, "example": {"is_enabled": true, "failover_group_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", "is_traffic_failed_over": false, "_links": {"self": {"href": "https://api.acquia.com/v3/environments/a1b2c3d4-e5f6-7890-abcd-ef1234567890/multi-region-failover"}}}}}, "links": {"self": {"operationId": "findMultiRegionFailoverByEnvironmentId", "parameters": {"environmentId": "$request.path.environmentId"}}}}, "Failover_Service_API_CreateFailoverGroupResponse": {"description": "Failover group creation initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Failover group creation has been initiated.", "description": "Confirmation message that the failover group creation has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901"}}, "message": "Failover group creation has been initiated."}}}}, "Failover_Service_API_DeleteFailoverGroupResponse": {"description": "Failover group deletion initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Failover group deletion has been initiated.", "description": "Confirmation message that the failover group deletion has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901"}}, "message": "Failover group deletion has been initiated."}}}}, "Failover_Service_API_FailoverGroupFailoverResponse": {"description": "Failover group failover initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Failover group failover initiated.", "description": "Confirmation message that the failover group failover has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901"}}, "message": "Failover group failover initiated."}}}}, "Failover_Service_API_FailoverGroupRevertFailoverResponse": {"description": "Failover group revert failover initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Failover group revert failover initiated.", "description": "Confirmation message that the failover group revert failover has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901"}}, "message": "Failover group revert failover initiated."}}}}, "Failover_Service_API_FailoverGroupSyncResponse": {"description": "Failover group sync initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Failover group sync initiated.", "description": "Confirmation message that the failover group sync has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901"}}, "message": "Failover group sync initiated."}}}}, "Failover_Service_API_SaveMultiRegionFailoverResponse": {"description": "Multi-region failover enable initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Multi-region failover enable has been initiated.", "description": "Confirmation message that multi-region failover enable has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/a1b2c3d4-e5f6-7890-abcd-ef1234567890/multi-region-failover"}}, "message": "Multi-region failover enable has been initiated."}}}}, "Failover_Service_API_DeleteMultiRegionFailoverResponse": {"description": "Multi-region failover disable initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "Multi-region failover disable has been initiated.", "description": "Confirmation message that multi-region failover disable has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/a1b2c3d4-e5f6-7890-abcd-ef1234567890/multi-region-failover"}}, "message": "Multi-region failover disable has been initiated."}}}}, "Failover_Service_API_ValidationError": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Failover_Service_API_ValidationError"}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "API_Specs_API_InternalServerError": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/API_Specs_API_InternalServerError"}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}, "CDN_API_ValidationError": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CDN_API_ValidationError"}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "CDN_API_UnauthorizedError": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CDN_API_UnauthorizedError"}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "CDN_API_ForbiddenError": {"description": "Forbidden", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CDN_API_ForbiddenError"}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "CDN_API_NotFoundError": {"description": "Not Found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CDN_API_NotFoundError"}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "CDN_API_InvalidOperationError": {"description": "Conflict", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CDN_API_InvalidOperationError"}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "CDN_API_InternalServerError": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CDN_API_InternalServerError"}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}, "CDN_API_DomainCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_HalCollection"}, {"$ref": "#/components/schemas/CDN_API_PaginatedCollection"}, {"$ref": "#/components/schemas/CDN_API_FilteredCollection"}, {"$ref": "#/components/schemas/CDN_API_SortedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Domain"}, {"$ref": "#/components/schemas/CDN_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"domains_response": {"summary": "Domain collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=0{&sort}", "templated": true}, "next": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=2"}}, "count": 2, "total": 50, "pagination": {"total": 50, "limit": 2, "offset": 0}, "_embedded": {"items": [{"domain": "example.com", "subscription_uuid": "12345678-1234-1234-1234-123456789012", "environment_id": "0c3f0f5f-5727-4838-9459-2d90ee1cf7c1", "application_name": "my-application", "status": "configured", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-20T15:45:00Z", "ownership_validation_cname": "_acme-challenge.example.com", "bandwidth_usage_tb": 1.25, "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains/example.com"}}}, {"domain": "test.example.org", "subscription_uuid": "12345678-1234-1234-1234-123456789012", "environment_id": "1d4f1f6f-6838-5949-a560-3e01ff2cf8d2", "application_name": "test-application", "status": "connecting-to-edge", "created_at": "2024-01-18T08:15:00Z", "ownership_validation_cname": "_acme-challenge.example.com", "bandwidth_usage_tb": 1.25, "updated_at": "2024-01-18T08:15:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains/test.example.org"}}}]}}}}}}}, "CDN_API_Domain": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Domain"}, {"$ref": "#/components/schemas/CDN_API_HalItem"}]}, "example": {"domain": "example.com", "subscription_uuid": "12345678-1234-1234-1234-123456789012", "environment_id": "0c3f0f5f-5727-4838-9459-2d90ee1cf7c1", "application_name": "my-application", "status": "configured", "ownership_validation_cname": "_acme-challenge.example.com", "bandwidth_usage_tb": 1.25, "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-20T15:45:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains/example.com"}}}}}, "links": {"self": {"operationId": "findDomainBySubscriptionUuidAndDomainName", "parameters": {"subscriptionUuid": "$request.path.subscriptionUuid", "domainName": "$request.path.domainName"}}}}, "CDN_API_DomainCdnProvisioningAccepted": {"description": "Accepted - Provisioning in progress", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The domain provisioning has been started.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains/example.com"}}, "message": "The domain provisioning has been started."}}}}, "CDN_API_DomainCdnDeprovisioningAccepted": {"description": "Accepted - Deprovisioning in progress", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The domain deprovisioning has been started.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains/example.com"}}, "message": "The domain deprovisioning has been started."}}}}, "CDN_API_PurgeAccepted": {"description": "Accepted - Purge request submitted", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The purge request has been submitted.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/0c3f0f5f-5727-4838-9459-2d90ee1cf7c1/actions/purge-cdn"}}, "message": "The purge request has been submitted."}}}}, "CDN_API_SecurityRuleSet": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_SecurityRuleSet"}, {"$ref": "#/components/schemas/CDN_API_HalItem"}]}, "example": {"id": 1, "name": "OWASP Top 10", "is_enabled": true, "description": "OWASP Top 10 security ruleset", "type": "owasp", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rulesets/1"}}}}}, "links": {"self": {"operationId": "findSecurityRuleSetBySubscriptionUuidAndRuleSetId", "parameters": {"subscriptionUuid": "$request.path.subscriptionUuid", "ruleSetId": "$request.path.ruleSetId"}}}}, "CDN_API_SecurityRuleSetCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_HalCollection"}, {"$ref": "#/components/schemas/CDN_API_PaginatedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/CDN_API_SecurityRuleSet"}, {"$ref": "#/components/schemas/CDN_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"security_rule_sets_response": {"summary": "Security rulesets collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rulesets?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rulesets?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rulesets?limit=2{&offset}", "templated": true}}, "count": 2, "total": 5, "pagination": {"total": 5, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": 123, "name": "OWASP Core Ruleset", "is_enabled": true, "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rulesets/123"}}}, {"id": 456, "name": "Bot Protection", "is_enabled": false, "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rulesets/456"}}}]}}}}}}}, "CDN_API_SecurityRuleSetUpdated": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The security ruleset has been updated.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rulesets/123"}}, "message": "The security ruleset has been updated."}}}}, "CDN_API_IpRule": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_IpRule"}, {"$ref": "#/components/schemas/CDN_API_HalItem"}]}, "example": {"id": 101, "display_name": "Block office VPN", "action": "allow", "description": "Allow traffic from the office VPN", "ips": ["203.0.113.0/24"], "created_at": "2026-05-01T12:00:00Z", "updated_at": "2026-05-10T09:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules/101"}}}}}, "links": {"self": {"operationId": "findIpRuleBySubscriptionUuidAndIpRuleId", "parameters": {"subscriptionUuid": "$request.path.subscriptionUuid", "ipRuleId": "$request.path.ipRuleId"}}}}, "CDN_API_IpRuleCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_HalCollection"}, {"$ref": "#/components/schemas/CDN_API_PaginatedCollection"}, {"$ref": "#/components/schemas/CDN_API_FilteredCollection"}, {"$ref": "#/components/schemas/CDN_API_SortedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/CDN_API_IpRule"}, {"$ref": "#/components/schemas/CDN_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"ip_rules_response": {"summary": "IP rules collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules?limit=2&offset=0{&sort}", "templated": true}, "next": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules?offset=2&limit=2"}}, "count": 2, "total": 5, "pagination": {"total": 5, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": 101, "display_name": "Block office IPs", "action": "block", "description": "Blocks office IP ranges.", "ips": ["192.0.2.10", "198.51.100.0/24"], "created_at": "2026-05-01T12:00:00Z", "updated_at": "2026-05-10T09:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules/101"}}}, {"id": 102, "display_name": "Allow support", "action": "allow", "description": "Allows support traffic.", "ips": ["203.0.113.5"], "created_at": "2026-05-02T08:15:00Z", "updated_at": "2026-05-11T13:45:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules/102"}}}]}}}}}}}, "CDN_API_IpRuleCreated": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The IP rule has been created.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules/101"}}, "message": "The IP rule has been created."}}}}, "CDN_API_IpRuleUpdated": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The IP rule has been updated.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules/101"}}, "message": "The IP rule has been updated."}}}}, "CDN_API_IpRuleDeleted": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The IP rule has been deleted.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules/101"}}, "message": "The IP rule has been deleted."}}}}, "CDN_API_CustomRuleCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_HalCollection"}, {"$ref": "#/components/schemas/CDN_API_PaginatedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/CDN_API_CustomRule"}, {"$ref": "#/components/schemas/CDN_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"custom_rules_response": {"summary": "Custom rules collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules?limit=2{&offset}", "templated": true}}, "count": 2, "total": 5, "pagination": {"total": 5, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": 301, "display_name": "Block bad bots", "action": "block", "priority": 1, "domains": ["example.com"], "paths": ["/api/*"], "targets": [{"attribute": "source-ip", "criteria": "range", "value": {"from": "10.0.0.0", "to": "10.0.0.255"}}], "created_at": "2026-05-01T12:00:00Z", "updated_at": "2026-05-10T09:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules/301"}}}, {"id": 302, "display_name": "Alert login scans", "action": "alert", "priority": 2, "domains": ["shop.example.com"], "paths": ["/login"], "targets": [{"attribute": "path", "criteria": "equals", "value": {"values": ["/login"]}}], "created_at": "2026-05-02T08:15:00Z", "updated_at": "2026-05-11T13:45:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules/302"}}}]}}}}}}}, "CDN_API_CustomRule": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_CustomRule"}, {"$ref": "#/components/schemas/CDN_API_HalItem"}]}, "example": {"id": 301, "display_name": "Block bad bots", "action": "block", "priority": 1, "domains": ["example.com"], "paths": ["/api/*"], "targets": [{"attribute": "source-ip", "criteria": "range", "value": {"from": "10.0.0.0", "to": "10.0.0.255"}}, {"attribute": "header", "criteria": "equals", "value": {"key_value_pairs": [{"key": "User-Agent", "value": "BadBot/1.0"}]}}], "created_at": "2026-05-01T12:00:00Z", "updated_at": "2026-05-10T09:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules/301"}}}}}, "links": {"self": {"operationId": "findCustomRuleBySubscriptionUuidAndCustomRuleId", "parameters": {"subscriptionUuid": "$request.path.subscriptionUuid", "customRuleId": "$request.path.customRuleId"}}}}, "CDN_API_CustomRuleCreated": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The custom security rule has been created.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules/301"}}, "message": "The custom security rule has been created."}}}}, "CDN_API_CustomRuleDeleted": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The custom security rule has been deleted.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules/301"}}, "message": "The custom security rule has been deleted."}}}}, "CDN_API_RateLimitingRuleCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_HalCollection"}, {"$ref": "#/components/schemas/CDN_API_PaginatedCollection"}, {"$ref": "#/components/schemas/CDN_API_FilteredCollection"}, {"$ref": "#/components/schemas/CDN_API_SortedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/CDN_API_RateLimitingRule"}, {"$ref": "#/components/schemas/CDN_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"rate_limiting_rules_response": {"summary": "Rate limiting rules collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules?limit=2&offset=0{&sort}", "templated": true}, "next": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules?limit=2&offset=2"}}, "count": 2, "total": 4, "pagination": {"total": 4, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": 501, "display_name": "Rate Rule 1", "action": "alert", "rate_limit_per_minute": "lenient", "domains": ["example.com"], "created_at": "2026-05-01T12:00:00Z", "updated_at": "2026-05-10T09:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules/501"}}}, {"id": 502, "display_name": "Rate Rule 2", "action": "block", "rate_limit_per_minute": "strict", "domains": ["shop.example.com"], "created_at": "2026-05-02T08:15:00Z", "updated_at": "2026-05-11T13:45:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules/502"}}}]}}}}}}}, "CDN_API_RateLimitingRule": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_RateLimitingRule"}, {"$ref": "#/components/schemas/CDN_API_HalItem"}]}, "example": {"id": 501, "display_name": "Rate Rule 1", "action": "alert", "rate_limit_per_minute": "lenient", "domains": ["example.com"], "created_at": "2026-05-01T12:00:00Z", "updated_at": "2026-05-10T09:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules/501"}}}}}, "links": {"self": {"operationId": "findRateLimitingRuleBySubscriptionUuidAndRateLimitingRuleId", "parameters": {"subscriptionUuid": "$request.path.subscriptionUuid", "rateLimitingRuleId": "$request.path.rateLimitingRuleId"}}}}, "CDN_API_RateLimitingRuleCreated": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The rate limiting rule has been created.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules/501"}}, "message": "The rate limiting rule has been created."}}}}, "CDN_API_RateLimitingRuleUpdated": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The rate limiting rule has been updated.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules/501"}}, "message": "The rate limiting rule has been updated."}}}}, "CDN_API_RateLimitingRuleDeleted": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The rate limiting rule has been deleted.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules/501"}}, "message": "The rate limiting rule has been deleted."}}}}, "CDN_API_CustomRuleUpdated": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Message"}, {"type": "object", "properties": {"message": {"type": "string", "const": "The custom security rule has been updated.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules/301"}}, "message": "The custom security rule has been updated."}}}}, "Environment_Service_API_ForbiddenError": {"description": "Forbidden", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Environment_Service_API_ForbiddenError"}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "Environment_Service_API_InternalServerError": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Environment_Service_API_InternalServerError"}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}, "Environment_Service_API_NotFoundError": {"description": "Not Found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Environment_Service_API_NotFoundError"}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "Environment_Service_API_UnauthorizedError": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Environment_Service_API_UnauthorizedError"}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "Environment_Service_API_ValidationError": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Environment_Service_API_ValidationError"}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "Environment_Service_API_InvalidOperationError": {"description": "Conflict", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Environment_Service_API_InvalidOperationError"}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "Environment_Service_API_DeploymentCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_PaginatedCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_FilteredCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_SortedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Deployment"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"deployment_response": {"summary": "Deployment collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=2"}, "limit": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?offset=2{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=2{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=2{&sort}", "templated": true}, "prev": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=0"}, "next": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=4"}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3", "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", "status": "done", "code_reference": "tags/v1.0.0", "run_hooks": true, "hooks_argument": null, "sender_id": null, "created_at": "2025-04-01T13:01:06.603Z", "started_at": "2025-04-01T13:01:10.123Z", "completed_at": "2025-04-01T13:05:00.000Z", "_links": {"self": {"href": "https://api.acquia.com/v3/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3"}, "environment": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323"}}}, {"id": "f1dae0f8-67c7-5d1e-cbe1-1f7604f77de4", "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", "status": "failed", "code_reference": "tags/v0.9.0", "run_hooks": false, "hooks_argument": null, "sender_id": null, "created_at": "2025-03-28T09:15:00.000Z", "started_at": "2025-03-28T09:15:05.000Z", "completed_at": "2025-03-28T09:18:00.000Z", "_links": {"self": {"href": "https://api.acquia.com/v3/deployments/f1dae0f8-67c7-5d1e-cbe1-1f7604f77de4"}, "environment": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323"}}}]}}}}}}}, "Environment_Service_API_Deployment": {"description": "Deployment details", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Deployment"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}, "example": {"id": "e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3", "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", "status": "started", "code_reference": "tags/v1.0.0", "run_hooks": true, "hooks_argument": "--skip-db-update", "created_at": "2025-04-01T13:01:06.603Z", "started_at": "2025-04-01T13:01:10.123Z", "completed_at": null, "sender_id": null, "logs": null, "_links": {"self": {"href": "https://api.acquia.com/v3/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3"}, "environment": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323"}}}}}, "links": {"self": {"operationId": "findDeploymentByDeploymentId", "parameters": {"deploymentId": "$request.path.deploymentId"}}}}, "Environment_Service_API_CodeDeploy": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_CodeDeploy"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}, "example": {"concurrency": 5, "_links": {"self": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/code-deploy"}}}}}, "links": {"self": {"operationId": "findCodeDeployByEnvironmentId", "parameters": {"environmentId": "$request.path.environmentId"}}}}, "Environment_Service_API_Environment": {"description": "Environment details", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Environment"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"codebase": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_EmbeddedCodebase"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}}}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc"}, "codebase": {"href": "https://api.acquia.com/v3/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323"}}, "id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", "name": "environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc", "label": "Environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc", "description": "Description of 3e8ecbec-ea7c-4260-8414-ef2938c859bc", "status": "normal", "flags": {"production": false, "protection_mode": false}, "properties": {"version": "8.3", "max_execution_time": 10, "memory_limit": 192, "apcu": 32, "client_max_body_size": 192, "max_input_vars": 1000, "max_post_size": 256, "memcached_limit": 128, "upload_max_filesize": 192, "operating_system": "focal"}, "reference": "tag/v3.1", "code_switch_status": "IDLE", "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", "_embedded": {"codebase": {"id": "d3f7270e-c45f-4801-9308-5e8afe84a323", "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323"}}}}}}}, "links": {"self": {"operationId": "findEnvironmentByEnvironmentId", "parameters": {"environmentId": "$request.path.environmentId"}}}}, "Environment_Service_API_EnvironmentCollection": {"description": "Environment collection", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_PaginatedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Environment"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2{&offset}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", "name": "dev", "label": "Dev", "description": "Development environment", "status": "normal", "reference": "branch/main", "code_switch_status": "IDLE", "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", "flags": {"production": false, "protection_mode": false}, "properties": {"version": "8.3"}, "_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc"}}}]}}}}}, "Environment_Service_API_FilterableEnvironmentCollection": {"description": "Environment collection", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_PaginatedCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_FilteredCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Environment"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2&offset=0{&filter}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", "name": "dev", "label": "Dev", "description": "Development environment", "status": "normal", "reference": "branch/main", "code_switch_status": "IDLE", "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", "flags": {"production": false, "protection_mode": false}, "properties": {"version": "8.3"}, "_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc"}}}]}}}}}, "Environment_Service_API_SiteInstance": {"description": "Site Instance details", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_SiteInstance"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323"}}, "site_id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", "status": "active", "health_status": {"code": "OK", "summary": "The health status is OK.", "details": "The site instance is active"}, "domains": ["example.com", "example-2.com"], "protection_mode": {"is_enabled": true, "is_inherited": true}}}}, "links": {"self": {"operationId": "findSiteInstanceBySiteIdAndEnvironmentId", "parameters": {"siteId": "$request.path.siteId", "environmentId": "$request.path.environmentId"}}}}, "Environment_Service_API_Domain": {"description": "Domain details", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Domain"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}, "example": {"name": "example.com", "is_managed": false, "_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com"}}}}}, "links": {"self": {"operationId": "findDomainBySiteIdAndEnvironmentIdAndDomainName", "parameters": {"siteId": "$request.path.siteId", "environmentId": "$request.path.environmentId", "domainName": "$request.path.domainName"}}}}, "Environment_Service_API_DomainCollection": {"description": "Domain collection", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_PaginatedCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_FilteredCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_SortedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Domain"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2&offset=0{&sort}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 2, "offset": 0}, "_embedded": {"items": [{"name": "example.com", "is_managed": false, "_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com"}}}]}}}}}, "Environment_Service_API_DomainStatus": {"description": "Domain DNS status details", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_DomainStatus"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}, "example": {"hostname": "example.com", "site_id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", "ip_addresses": ["203.0.113.10"], "cnames": [], "flags": {"default": false, "active": true, "dns_resolves": true, "acquia_hosted": true}, "_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com/status"}}}}}}, "Environment_Service_API_Database": {"description": "Database details", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Database"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}, "example": {"database_name": "site_dev", "database_role": "site_dev_user", "_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database"}}}}}, "links": {"self": {"operationId": "findDatabaseBySiteIdAndEnvironmentId", "parameters": {"siteId": "$request.path.siteId", "environmentId": "$request.path.environmentId"}}}}, "Environment_Service_API_DatabaseConnection": {"description": "Database connection credential details", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_DatabaseConnection"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}, "example": {"db_host": "db.example.com", "name": "site_dev", "password": "s3cr3t", "user_name": "site_dev_user", "ssh_host": "site.dev.ssh.hosted.acquia-sites.com", "_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/connection"}}}}}}, "Environment_Service_API_DatabaseBackup": {"description": "Database backup details", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_DatabaseBackup"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}, "example": {"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "database_id": "b2c3d4e5-f6a7-8901-bcde-f01234567891", "created_at": "2025-04-01T02:00:00.000Z", "type": "DAILY", "_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups/a1b2c3d4-e5f6-7890-abcd-ef1234567890"}, "download": {"href": "https://s3.amazonaws.com/acquia-backups/backup-a1b2c3d4.sql.gz?X-Amz-Expires=3600&X-Amz-Signature=abc123"}}}}}, "links": {"self": {"operationId": "findDatabaseBackupBySiteIdAndEnvironmentIdAndBackupId", "parameters": {"siteId": "$request.path.siteId", "environmentId": "$request.path.environmentId", "backupId": "$request.path.backupId"}}}}, "Environment_Service_API_DatabaseBackupCollection": {"description": "Database backup collection", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_PaginatedCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_FilteredCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_SortedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_DatabaseBackup"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2&offset=0{&sort}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "database_id": "b2c3d4e5-f6a7-8901-bcde-f01234567891", "created_at": "2025-04-01T02:00:00.000Z", "type": "DAILY", "_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups/a1b2c3d4-e5f6-7890-abcd-ef1234567890"}}}]}}}}}, "Environment_Service_API_EgressIpCollection": {"description": "Egress IP collection", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_PaginatedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_EgressIp"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/eips?limit=25&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/eips?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/eips?limit=25{&offset}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 25, "offset": 0}, "_embedded": {"items": [{"id": "eip-a1b2c3d4-e5f6-7890-abcd-ef1234567890", "status": "active", "ipv4": "203.0.113.10", "ipv6": null, "flags": {"is_primary": true}}]}}}}}, "Environment_Service_API_TrustedProxies": {"description": "Trusted proxy configuration details", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_TrustedProxies"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}, "example": {"cidrs_ipv4": ["203.0.113.0/24"], "cidrs_ipv6": [], "associated_cdns": {"cloudflare": {"label": "Cloudflare", "is_enabled": true}}, "_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/trusted-proxies"}}}}}, "links": {"self": {"operationId": "findTrustedProxiesByEnvironmentId", "parameters": {"environmentId": "$request.path.environmentId"}}}}, "Environment_Service_API_PrivateNetwork": {"description": "Private network details", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_PrivateNetwork"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}, "example": {"id": "pn-a1b2c3d4-e5f6-7890-abcd-ef1234567890", "label": "Production VPC", "_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/private-network"}}}}}, "links": {"self": {"operationId": "findPrivateNetworkByEnvironmentId", "parameters": {"environmentId": "$request.path.environmentId"}}}}, "Environment_Service_API_DomainPattern": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_DomainPattern"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}, "example": {"id": "11111111-1111-1111-1111-111111111111", "pattern": "[site-name].acme.com", "_links": {"self": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111"}}}}}, "links": {"self": {"operationId": "findDomainPatternByEnvironmentIdAndPatternId", "parameters": {"environmentId": "$request.path.environmentId", "patternId": "$request.path.patternId"}}}}, "Environment_Service_API_DomainPatternCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_PaginatedCollection"}, {"$ref": "#/components/schemas/Environment_Service_API_SortedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_DomainPattern"}, {"$ref": "#/components/schemas/Environment_Service_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"domain_pattern_collection": {"summary": "Domain pattern collection", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns"}, "limit": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25{&offset}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25&offset=0{&sort}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 25, "offset": 0}, "_embedded": {"items": [{"id": "11111111-1111-1111-1111-111111111111", "pattern": "[site-name].acme.com", "_links": {"self": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111"}}}]}}}, "domain_pattern_collection_empty": {"summary": "Empty domain pattern collection", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns"}, "limit": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25{&offset}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25&offset=0{&sort}", "templated": true}}, "count": 0, "total": 0, "pagination": {"total": 0, "limit": 25, "offset": 0}, "_embedded": {"items": []}}}}}}}, "SSH_Key_Service_API_SshKeyCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"$ref": "#/components/schemas/SSH_Key_Service_API_SshKeys"}, "examples": {"ssh_keys": {"summary": "SSH key collection", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/ssh-keys?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/ssh-keys?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/ssh-keys?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/ssh-keys?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/ssh-keys?limit=2&offset=0{&sort}", "templated": true}, "next": {"href": "https://api.acquia.com/v3/ssh-keys?limit=2&offset=2"}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "1acbb1a5-e864-4b8e-a3f9-b1ed462afd25", "label": "primary", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQChwPHzTTDKDpSbpa2+d22LcbQmsw92eLsUK3Fmei1fiGDkd34NsYCN8m7lsi3NbvdMS83CtPQPWiCveYPzFs1/hHc4PYj8opD2CNnr5iWVVbyaulCYHCgVv4aB/ojcexg8q483A4xJeF15TiCr/gu34rK6ucTvC/tn/rCwJBudczvEwt0klqYwv8Cl/ytaQboSuem5KgSjO3lMrb6CWtfSNhE43ZOw+UBFBqxIninN868vGMkIv9VY34Pwj54rPn/ItQd6Ef4B0KHHaGmzK0vfP+AK7FxNMoHnj3iYT33KZNqtDozdn5tYyH/bThPebEtgqUn+/w5l6wZIC/8zzvls/127ngHk+jNa0PlNyS2TxhPUK4NaPHIEnnrlp07JEYC4ImcBjaYCWAdcTcUkcJjwZQkN4bGmyO9cjICH98SdLD/HxqzTHeaYDbAX/Hu9HfaBb5dXLWsjw3Xc6hoVnUUZbMQyfgb0KgxDLh92eNGxJkpZiL0VDNOWCxDWsNpzwhLNkLqCvI6lyxiLaUzvJAk6dPaRhExmCbU1lDO2eR0FdSwC1TEhJOT9eDIK1r2hztZKs2oa5FNFfB/IFHVWasVFC9N2h/r/egB5zsRxC9MqBLRBq95NBxaRSFng6ML5WZSw41Qi4C/JWVm89rdj2WqScDHYyAdwyyppWU4T5c9Fmw== example@example.com", "fingerprint": "SHA256:7a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8g9h0i1j2k3l4m5n6o7p8q9r0s1", "created_at": "2024-10-01T12:30:00Z", "user_id": "a47ac10b-58cc-4372-a567-0e02b2c3d479", "_links": {"self": {"href": "https://api.acquia.com/v3/ssh-keys/1acbb1a5-e864-4b8e-a3f9-b1ed462afd25"}}}, {"id": "2bcbb1a5-e864-4b8e-a3f9-b1ed462afd26", "label": "backup", "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFf2T1I1d8T1B9Q1b8pS6m2xvY3i5q8sNnU5oQwY5vS9 example@example.com", "fingerprint": "SHA256:9b8c7d6e5f4a3b2c1d0e9f8a7b6c5d4e3f2a1b0c9d8e7f6a5b4c3d2e1f0a9b8", "created_at": "2024-10-02T09:15:00Z", "user_id": "b58bd21c-69dd-5483-b678-1f13c3d4e580", "_links": {"self": {"href": "https://api.acquia.com/v3/ssh-keys/2bcbb1a5-e864-4b8e-a3f9-b1ed462afd26"}}}]}}}}}}}, "SSH_Key_Service_API_SshKey": {"description": "OK", "content": {"application/hal+json": {"schema": {"$ref": "#/components/schemas/SSH_Key_Service_API_SshKey"}, "example": {"id": "1acbb1a5-e864-4b8e-a3f9-b1ed462afd25", "label": "primary", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQChwPHzTTDKDpSbpa2+d22LcbQmsw92eLsUK3Fmei1fiGDkd34NsYCN8m7lsi3NbvdMS83CtPQPWiCveYPzFs1/hHc4PYj8opD2CNnr5iWVVbyaulCYHCgVv4aB/ojcexg8q483A4xJeF15TiCr/gu34rK6ucTvC/tn/rCwJBudczvEwt0klqYwv8Cl/ytaQboSuem5KgSjO3lMrb6CWtfSNhE43ZOw+UBFBqxIninN868vGMkIv9VY34Pwj54rPn/ItQd6Ef4B0KHHaGmzK0vfP+AK7FxNMoHnj3iYT33KZNqtDozdn5tYyH/bThPebEtgqUn+/w5l6wZIC/8zzvls/127ngHk+jNa0PlNyS2TxhPUK4NaPHIEnnrlp07JEYC4ImcBjaYCWAdcTcUkcJjwZQkN4bGmyO9cjICH98SdLD/HxqzTHeaYDbAX/Hu9HfaBb5dXLWsjw3Xc6hoVnUUZbMQyfgb0KgxDLh92eNGxJkpZiL0VDNOWCxDWsNpzwhLNkLqCvI6lyxiLaUzvJAk6dPaRhExmCbU1lDO2eR0FdSwC1TEhJOT9eDIK1r2hztZKs2oa5FNFfB/IFHVWasVFC9N2h/r/egB5zsRxC9MqBLRBq95NBxaRSFng6ML5WZSw41Qi4C/JWVm89rdj2WqScDHYyAdwyyppWU4T5c9Fmw== example@example.com", "fingerprint": "SHA256:7a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8g9h0i1j2k3l4m5n6o7p8q9r0s1", "created_at": "2024-10-01T12:30:00Z", "user_id": "a47ac10b-58cc-4372-a567-0e02b2c3d479", "_links": {"self": {"href": "https://api.acquia.com/v3/ssh-keys/1acbb1a5-e864-4b8e-a3f9-b1ed462afd25"}}}}}, "links": {"self": {"operationId": "findSshKeyBySshKeyId", "parameters": {"sshKeyId": "$request.path.sshKeyId"}}}}, "SSH_Key_Service_API_UnauthorizedError": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SSH_Key_Service_API_UnauthorizedError"}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "SSH_Key_Service_API_ForbiddenError": {"description": "Forbidden", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SSH_Key_Service_API_ForbiddenError"}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "SSH_Key_Service_API_NotFoundError": {"description": "Not Found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SSH_Key_Service_API_NotFoundError"}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "SSH_Key_Service_API_ValidationError": {"description": "Bad Request - Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SSH_Key_Service_API_ValidationError"}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required."}}}}}, "SSH_Key_Service_API_InvalidOperationError": {"description": "Conflict", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SSH_Key_Service_API_InvalidOperationError"}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "SSH_Key_Service_API_InternalServerError": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SSH_Key_Service_API_InternalServerError"}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}, "Site_Service_API_ForbiddenError": {"description": "Forbidden", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Site_Service_API_ForbiddenError"}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "Site_Service_API_InternalServerError": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Site_Service_API_InternalServerError"}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}, "Site_Service_API_InvalidOperationError": {"description": "Conflict", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Site_Service_API_InvalidOperationError"}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "Site_Service_API_NotFoundError": {"description": "Not Found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Site_Service_API_NotFoundError"}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "Site_Service_API_UnauthorizedError": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Site_Service_API_UnauthorizedError"}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "Site_Service_API_ValidationError": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Site_Service_API_ValidationError"}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "Site_Service_API_Site": {"description": "Site details", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_Site"}, {"$ref": "#/components/schemas/Site_Service_API_HalItem"}, {"type": "object", "properties": {"_links": {"properties": {"self": {"$ref": "#/components/schemas/Site_Service_API_HalLink"}, "codebase": {"$ref": "#/components/schemas/Site_Service_API_HalLink"}}}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890"}, "codebase": {"href": "https://api.acquia.com/v3/codebases/a9b8c7d6-e5f4-3210-abcd-ef9876543210"}}, "id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", "name": "mysite", "label": "My Site", "description": "This is a description of my site.", "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", "status": "ready"}}}, "links": {"self": {"operationId": "findSiteBySiteId", "parameters": {"siteId": "$request.path.siteId"}}}}, "Site_Service_API_SiteCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_HalCollection"}, {"$ref": "#/components/schemas/Site_Service_API_PaginatedCollection"}, {"$ref": "#/components/schemas/Site_Service_API_FilteredCollection"}, {"$ref": "#/components/schemas/Site_Service_API_SortedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_Site"}, {"$ref": "#/components/schemas/Site_Service_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"site_collection": {"summary": "Site collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/sites?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/sites?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/sites?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/sites?limit=2&offset=0{&sort}", "templated": true}, "next": {"href": "https://api.acquia.com/v3/sites?limit=2&offset=2"}}, "count": 2, "total": 4, "pagination": {"total": 4, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", "name": "mysite", "label": "My Site", "description": "A description of my site.", "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", "status": "ready", "_links": {"self": {"href": "https://api.acquia.com/v3/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890"}}}, {"id": "e2b3c4d5-f6a7-8901-bcde-f12345678901", "name": "anothersite", "label": "Another Site", "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", "status": "marked-for-deletion", "delete_at": "2025-01-01T00:00:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/sites/e2b3c4d5-f6a7-8901-bcde-f12345678901"}}}]}}}}}}}, "Federated_Authentication_API_IdentityProvider": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_IdentityProvider"}, {"$ref": "#/components/schemas/Federated_Authentication_API_HalItem"}]}, "example": {"identity_provider_id": "908914ec-2354-4fb1-9298-637247eccc3a", "label": "Acme Corporation Azure AD", "subscription_id": "sub-123", "idp_entity_id": "https://idp.acme.com/saml", "sp_entity_id": "https://sp.acme.com/saml", "sso_url": "https://acme.com/sso", "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", "created_at": "2026-04-15T11:00:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a"}, "sso_policy": {"href": "https://api.acquia.com/v3/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a/policies/sso"}}}}}, "links": {"self": {"operationId": "findIdentityProviderByIdentityProviderId", "parameters": {"identityProviderId": "$response.body#/identity_provider_id"}}, "update": {"operationId": "updateIdentityProviderByIdentityProviderId", "parameters": {"identityProviderId": "$response.body#/identity_provider_id"}}, "delete": {"operationId": "deleteIdentityProviderByIdentityProviderId", "parameters": {"identityProviderId": "$response.body#/identity_provider_id"}}, "enable_sso_policy": {"operationId": "enableIdentityProviderSSOPolicyByIdentityProviderId", "parameters": {"identityProviderId": "$response.body#/identity_provider_id"}}, "disable_sso_policy": {"operationId": "disableIdentityProviderSSOPolicyByIdentityProviderId", "parameters": {"identityProviderId": "$response.body#/identity_provider_id"}}}}, "Federated_Authentication_API_IdentityProviderCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_HalCollection"}, {"$ref": "#/components/schemas/Federated_Authentication_API_PaginatedCollection"}, {"$ref": "#/components/schemas/Federated_Authentication_API_FilteredCollection"}, {"$ref": "#/components/schemas/Federated_Authentication_API_SortedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_IdentityProvider"}, {"$ref": "#/components/schemas/Federated_Authentication_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"identity_provider_response": {"summary": "Identity provider collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?limit=2&offset=2"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?offset=2{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?limit=2&offset=2{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?limit=2&offset=2{&sort}", "templated": true}, "prev": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?limit=2&offset=0"}, "next": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?offset=4&limit=2"}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"identity_provider_id": "908914ec-2354-4fb1-9298-637247eccc3a", "label": "Acme Corporation Azure AD", "subscription_id": "sub-123", "idp_entity_id": "https://idp.acme.com/saml", "sp_entity_id": "https://sp.acme.com/saml", "sso_url": "https://acme.com/sso", "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", "created_at": "2026-04-15T11:00:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a"}, "sso_policy": {"href": "https://api.acquia.com/v3/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a/policies/sso"}}}, {"identity_provider_id": "123456ec-2354-4fb1-9298-637247eccc3b", "label": "Acme Research Ping Identity", "subscription_id": "sub-123", "idp_entity_id": "https://idp-research.acme.com/saml", "sp_entity_id": "https://sp-research.acme.com/saml", "sso_url": "https://research.acme.com/sso", "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", "created_at": "2026-04-20T14:20:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/123456ec-2354-4fb1-9298-637247eccc3b"}, "sso_policy": {"href": "https://api.acquia.com/v3/identity-providers/123456ec-2354-4fb1-9298-637247eccc3b/policies/sso"}}}]}}}}}}}, "Federated_Authentication_API_SsoDomain": {"description": "OK. The `_links` object always contains `self`. Additional links are state-conditional: `verify` is present when `health.code` is `202` or `404` (POST it to initiate or retry DNS TXT record verification); `identity_providers` is present when the domain is referenced by one or more Identity Provider policies (follows to a filtered list of those IdPs; when present the domain cannot be deleted \u2014 remove it from all policies first).", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_SsoDomain"}, {"$ref": "#/components/schemas/Federated_Authentication_API_HalItem"}]}, "examples": {"pending_verification": {"summary": "Domain awaiting DNS verification", "description": "A newly created domain whose DNS TXT record has not yet been confirmed. `health.code` is `202`; the `verify` link is present so the client can trigger or retry the check. `identity_providers` is absent because no policy can reference an unverified domain.", "value": {"domain_id": "dom-789", "domain": "acme.corp", "subscription_id": "sub-123", "health": {"code": "202", "summary": "Verification pending", "details": "Acquia is waiting to confirm the DNS TXT record. Ensure the record has been published and allow time for DNS propagation, then retry verification."}, "verification_record": {"type": "TXT", "host": "_acquia-challenge.acme.corp", "value": "xyz789abc123", "health": {"code": "202", "summary": "Check in progress", "details": "The TXT record check has not yet completed."}}, "_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-789"}, "verify": {"href": "https://api.acquia.com/v3/sso-domains/dom-789/actions/verify"}}}}, "failed_verification": {"summary": "Domain verification failed \u2014 DNS record not found", "description": "A domain whose TXT record could not be found. `health.code` is `404`; `details` names the exact record to check. The `verify` link is present so the client can retry after fixing the DNS entry.", "value": {"domain_id": "dom-789", "domain": "acme.corp", "subscription_id": "sub-123", "health": {"code": "404", "summary": "Missing DNS record", "details": "Acquia could not verify the presence of the required TXT DNS record at _acquia-challenge.acme.corp. Ensure the record is published with the correct value and retry verification."}, "verification_record": {"type": "TXT", "host": "_acquia-challenge.acme.corp", "value": "xyz789abc123", "health": {"code": "404", "summary": "Missing DNS record", "details": "The TXT record at _acquia-challenge.acme.corp was not found or does not match the expected value xyz789abc123."}}, "_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-789"}, "verify": {"href": "https://api.acquia.com/v3/sso-domains/dom-789/actions/verify"}}}}, "verified_in_use": {"summary": "Verified domain referenced by an Identity Provider policy", "description": "A verified domain enforced by at least one Identity Provider policy. `health.code` is `200`; `verify` is absent; `identity_providers` is present. A DELETE on this domain will return 409 until the domain is removed from all policies.", "value": {"domain_id": "dom-456", "domain": "acme.com", "subscription_id": "sub-123", "health": {"code": "200", "summary": "Verified", "details": "The DNS TXT record has been confirmed and the domain is verified."}, "verification_record": {"type": "TXT", "host": "_acquia-challenge.acme.com", "value": "abc123def456", "health": {"code": "200", "summary": "Verified", "details": "The TXT record at _acquia-challenge.acme.com matches the expected value."}}, "verified_at": "2026-04-15T10:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-456"}, "identity_providers": {"href": "https://api.acquia.com/v3/identity-providers?filter=domain_id%3Ddom-456"}}}}}}}, "links": {"self": {"operationId": "findSsoDomainBySsoDomainId", "parameters": {"domainId": "$response.body#/domain_id"}}, "delete": {"operationId": "deleteSsoDomainBySsoDomainId", "parameters": {"domainId": "$response.body#/domain_id"}}, "verify": {"operationId": "verifySsoDomainBySsoDomainId", "parameters": {"domainId": "$response.body#/domain_id"}}}}, "Federated_Authentication_API_SsoDomainCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_HalCollection"}, {"$ref": "#/components/schemas/Federated_Authentication_API_PaginatedCollection"}, {"$ref": "#/components/schemas/Federated_Authentication_API_FilteredCollection"}, {"$ref": "#/components/schemas/Federated_Authentication_API_SortedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_SsoDomain"}, {"$ref": "#/components/schemas/Federated_Authentication_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"domain_response": {"summary": "Domain collection with pagination", "description": "Two domains in different states: one verified and in use by a policy (carries `identity_providers` link), one pending verification (carries `verify` link).", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?limit=2&offset=0{&sort}", "templated": true}, "next": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?offset=2&limit=2"}}, "count": 2, "total": 3, "pagination": {"total": 3, "limit": 2, "offset": 0}, "_embedded": {"items": [{"domain_id": "dom-456", "domain": "acme.com", "subscription_id": "sub-123", "health": {"code": "200", "summary": "Verified", "details": "The DNS TXT record has been confirmed and the domain is verified."}, "verification_record": {"type": "TXT", "host": "_acquia-challenge.acme.com", "value": "abc123def456", "health": {"code": "200", "summary": "Verified", "details": "The TXT record at _acquia-challenge.acme.com matches the expected value."}}, "verified_at": "2026-04-15T10:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-456"}, "identity_providers": {"href": "https://api.acquia.com/v3/identity-providers?filter=domain_id%3Ddom-456"}}}, {"domain_id": "dom-789", "domain": "acme.corp", "subscription_id": "sub-123", "health": {"code": "202", "summary": "Verification pending", "details": "Acquia is waiting to confirm the DNS TXT record. Ensure the record has been published and allow time for DNS propagation, then retry verification."}, "verification_record": {"type": "TXT", "host": "_acquia-challenge.acme.corp", "value": "xyz789abc123", "health": {"code": "202", "summary": "Check in progress", "details": "The TXT record check has not yet completed."}}, "_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-789"}, "verify": {"href": "https://api.acquia.com/v3/sso-domains/dom-789/actions/verify"}}}]}}}}}}}, "Federated_Authentication_API_ValidationError": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Federated_Authentication_API_ValidationError"}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "Federated_Authentication_API_UnauthorizedError": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Federated_Authentication_API_UnauthorizedError"}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "Federated_Authentication_API_ForbiddenError": {"description": "Forbidden", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Federated_Authentication_API_ForbiddenError"}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "Federated_Authentication_API_NotFoundError": {"description": "Not Found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Federated_Authentication_API_NotFoundError"}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "Federated_Authentication_API_InternalServerError": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Federated_Authentication_API_InternalServerError"}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}, "Federated_Authentication_API_InvalidOperationError": {"description": "Conflict", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Federated_Authentication_API_InvalidOperationError"}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "Codebase_Service_API_Codebase": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_Codebase"}, {"$ref": "#/components/schemas/Codebase_Service_API_HalItem"}]}, "example": {"id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", "label": "my-codebase", "region": "us-east-1", "vcs_url": "https://github.com/acquia/my-codebase.git", "repository_id": "12345678", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z", "description": "Main production codebase", "flags": {"is_active": true, "is_meo": false}, "hash": "abc123def456", "applications_total": 3, "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4"}}}}}}, "Codebase_Service_API_CodebaseCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_HalCollection"}, {"$ref": "#/components/schemas/Codebase_Service_API_PaginatedCollection"}, {"$ref": "#/components/schemas/Codebase_Service_API_FilteredCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_Codebase"}, {"$ref": "#/components/schemas/Codebase_Service_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"codebase_collection": {"summary": "Codebase collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases?limit=10&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/codebases?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/codebases?limit=10{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/codebases?limit=10&offset=0{&filter}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 10, "offset": 0}, "_embedded": {"items": [{"id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", "label": "my-codebase", "region": "us-east-1", "vcs_url": "https://github.com/acquia/my-codebase.git", "repository_id": "12345678", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z", "description": "Main production codebase", "flags": {"is_active": true, "is_meo": false}, "hash": "abc123def456", "applications_total": 3, "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4"}}}]}}}}}}}, "Codebase_Service_API_CodebaseReference": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_CodebaseReference"}, {"$ref": "#/components/schemas/Codebase_Service_API_HalItem"}]}, "example": {"id": "ref-123", "name": "main", "type": "branch", "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references/main"}}}}}}, "Codebase_Service_API_CodebaseReferenceCollection": {"description": "A list of git references for the codebase", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_HalCollection"}, {"$ref": "#/components/schemas/Codebase_Service_API_PaginatedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_CodebaseReference"}, {"$ref": "#/components/schemas/Codebase_Service_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references?limit=10&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references?limit=10{&offset}", "templated": true}}, "count": 2, "total": 2, "pagination": {"total": 2, "limit": 10, "offset": 0}, "_embedded": {"items": [{"id": "ref-123", "name": "main", "type": "branch", "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references/main"}}}, {"id": "ref-456", "name": "v1.0.0", "type": "tag", "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references/v1.0.0"}}}]}}}}}, "Codebase_Service_API_DomainPattern": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_DomainPattern"}, {"$ref": "#/components/schemas/Codebase_Service_API_HalItem"}]}, "example": {"id": "22222222-2222-2222-2222-222222222222", "pattern": "[site-name].[environment-name].acme.com", "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222"}}}}}, "links": {"self": {"operationId": "findDomainPatternByCodebaseIdAndPatternId", "parameters": {"codebaseId": "$request.path.codebaseId", "patternId": "$request.path.patternId"}}}}, "Codebase_Service_API_DomainPatternCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_HalCollection"}, {"$ref": "#/components/schemas/Codebase_Service_API_PaginatedCollection"}, {"$ref": "#/components/schemas/Codebase_Service_API_SortedCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_DomainPattern"}, {"$ref": "#/components/schemas/Codebase_Service_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"domain_pattern_collection": {"summary": "Domain pattern collection", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns"}, "limit": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25{&offset}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25&offset=0{&sort}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 25, "offset": 0}, "_embedded": {"items": [{"id": "22222222-2222-2222-2222-222222222222", "pattern": "[site-name].[environment-name].acme.com", "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222"}}}]}}}, "domain_pattern_collection_empty": {"summary": "Empty domain pattern collection", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns"}, "limit": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25{&offset}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25&offset=0{&sort}", "templated": true}}, "count": 0, "total": 0, "pagination": {"total": 0, "limit": 25, "offset": 0}, "_embedded": {"items": []}}}}}}}, "Codebase_Service_API_ForbiddenError": {"description": "Forbidden", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Codebase_Service_API_ForbiddenError"}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "Codebase_Service_API_InternalServerError": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Codebase_Service_API_InternalServerError"}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}, "Codebase_Service_API_InvalidOperationError": {"description": "Conflict", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Codebase_Service_API_InvalidOperationError"}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "Codebase_Service_API_NotFoundError": {"description": "Not Found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Codebase_Service_API_NotFoundError"}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "Codebase_Service_API_SubscriptionCodebaseCollection": {"description": "A list of codebases for the subscription", "content": {"application/hal+json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_HalCollection"}, {"$ref": "#/components/schemas/Codebase_Service_API_PaginatedCollection"}, {"$ref": "#/components/schemas/Codebase_Service_API_FilteredCollection"}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_Codebase"}, {"$ref": "#/components/schemas/Codebase_Service_API_HalItem"}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"subscription_codebase_collection": {"summary": "Subscription codebase collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/sub-12345/codebases?limit=10&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/sub-12345/codebases?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/sub-12345/codebases?limit=10{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/subscriptions/sub-12345/codebases?limit=10&offset=0{&filter}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 10, "offset": 0}, "_embedded": {"items": [{"id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", "label": "my-codebase", "region": "us-east-1", "vcs_url": "https://github.com/acquia/my-codebase.git", "repository_id": "12345678", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z", "description": "Main production codebase", "flags": {"is_active": true, "is_meo": false}, "hash": "abc123def456", "applications_total": 3, "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4"}}}]}}}}}}}, "Codebase_Service_API_UnauthorizedError": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Codebase_Service_API_UnauthorizedError"}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "Codebase_Service_API_ValidationError": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Codebase_Service_API_ValidationError"}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}}, "requestBodies": {"Failover_Service_API_CreateFailoverGroupRequest": {"description": "Create failover group request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"name": {"type": "string", "description": "The name of the failover group.", "example": "Primary Failover Group"}}, "required": ["name"], "additionalProperties": false}, "examples": {"create": {"summary": "Creates a new failover group", "description": "Creates a new failover group with the specified name", "value": {"name": "Primary Failover Group"}}}}}}, "Failover_Service_API_SaveMultiRegionFailoverRequest": {"description": "Multi-region failover enable request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"region": {"type": "string", "description": "The region to enable multi-region failover for.", "example": "us-east-1"}}, "required": ["region"], "additionalProperties": false, "minProperties": 1}, "examples": {"enable": {"summary": "Enables multi-region failover for a region", "description": "Enables multi-region failover for the specified region", "value": {"region": "us-east-1"}}}}}}, "CDN_API_ProvisionCdnForDomainRequest": {"description": "Domain CDN provisioning request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"environment_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "The environment identifier that the domain will be associated with for purging purposes."}}, "additionalProperties": false, "required": ["environment_id"], "minProperties": 1}, "example": {"environment_id": "0c3f0f5f-5727-4838-9459-2d90ee1cf7c1"}}}}, "CDN_API_CreatePurgeRequest": {"description": "Purge request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"resource_type": {"type": "string", "description": "The type of resource to purge.", "enum": ["tags", "urls", "domains", "everything"]}, "values": {"type": "array", "description": "List of values to purge based on the resource type.\nRequired when `resource_type` is not `everything`.\n", "items": {"type": "string"}, "minItems": 1}}, "additionalProperties": false, "required": ["resource_type"], "minProperties": 1}, "examples": {"purge_urls": {"summary": "Purge specific URLs", "value": {"resource_type": "urls", "values": ["https://example.com/page1", "https://example.com/page2"]}}, "purge_tags": {"summary": "Purge by cache tags", "value": {"resource_type": "tags", "values": ["product-123", "category-456"]}}, "purge_domains": {"summary": "Purge entire domains", "value": {"resource_type": "domains", "values": ["example.com", "test.example.org"]}}, "purge_everything": {"summary": "Purge everything", "value": {"resource_type": "everything"}}}}}}, "CDN_API_UpdateSecurityRuleSetRequest": {"description": "Security ruleset update request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"is_enabled": {"type": "boolean", "description": "Indicates whether the security ruleset should be enabled."}}, "additionalProperties": false, "required": ["is_enabled"], "minProperties": 1}, "examples": {"enable": {"summary": "Enables a security ruleset", "value": {"is_enabled": true}}}}}}, "CDN_API_CreateIpRuleRequest": {"description": "IP rule create request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"ips": {"type": "array", "description": "The IPs or CIDR blocks to include in the rule.", "items": {"type": "string", "description": "An IP address or CIDR block."}}, "action": {"type": "string", "enum": ["block", "allow"], "description": "The action applied when the rule matches."}, "display_name": {"type": "string", "description": "The display name of the IP rule."}, "description": {"type": "string", "description": "The description of the IP rule."}}, "additionalProperties": false, "required": ["ips", "action", "display_name"]}, "examples": {"create": {"summary": "Creates an IP rule", "value": {"ips": ["192.0.2.10", "198.51.100.0/24"], "action": "block", "display_name": "Block office IPs", "description": "Blocks office IP ranges."}}}}}}, "CDN_API_UpdateIpRuleRequest": {"description": "IP rule update request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"display_name": {"type": "string", "description": "The display name of the IP rule."}, "action": {"type": "string", "enum": ["block", "allow"], "description": "The action applied when the rule matches."}, "description": {"type": "string", "description": "The description of the IP rule."}, "ips": {"type": "array", "description": "The IPs or CIDR blocks associated with the rule.", "items": {"type": "string", "description": "An IP address or CIDR block."}}}, "additionalProperties": false, "minProperties": 1}, "examples": {"update": {"summary": "Updates an IP rule", "value": {"display_name": "Allow support", "action": "allow", "ips": ["203.0.113.5"]}}}}}}, "CDN_API_CreateCustomRuleRequest": {"description": "Custom security rule create request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"display_name": {"type": "string", "description": "The display name of the custom security rule."}, "action": {"type": "string", "enum": ["block", "allow", "alert"], "description": "The action applied when the rule matches."}, "priority": {"type": "integer", "minimum": 1, "description": "The priority order for the rule."}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "paths": {"type": "array", "description": "The paths the rule applies to.", "items": {"type": "string", "description": "A path pattern."}}}, "additionalProperties": false, "required": ["display_name", "action", "domains", "paths"], "minProperties": 1}, "examples": {"create": {"summary": "Creates a custom security rule", "value": {"display_name": "Block bad bots", "action": "block", "priority": 1, "domains": ["example.com"], "paths": ["/api/*"]}}}}}}, "CDN_API_CreateRateLimitingRuleRequest": {"description": "Rate limiting rule create request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"display_name": {"type": "string", "description": "The display name of the rate limiting rule."}, "action": {"type": "string", "enum": ["block", "alert"], "description": "The action applied when the rule matches."}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "rate_limit_per_minute": {"type": "string", "enum": ["lenient", "moderate", "strict"], "description": "The rate limit category applied to the rule."}}, "additionalProperties": false, "required": ["display_name", "action", "rate_limit_per_minute"], "minProperties": 1}, "examples": {"create": {"summary": "Creates a rate limiting rule", "value": {"display_name": "Rate Rule 1", "action": "alert", "rate_limit_per_minute": "lenient", "domains": ["example.com"]}}}}}}, "CDN_API_UpdateRateLimitingRuleRequest": {"description": "Rate limiting rule update request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"display_name": {"type": "string", "description": "The display name of the rate limiting rule."}, "action": {"type": "string", "enum": ["block", "alert"], "description": "The action applied when the rule matches."}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "rate_limit_per_minute": {"type": "string", "enum": ["lenient", "moderate", "strict"], "description": "The rate limit category applied to the rule."}}, "additionalProperties": false, "minProperties": 1}, "examples": {"update": {"summary": "Updates a rate limiting rule", "value": {"display_name": "Rate Rule 2", "action": "block", "rate_limit_per_minute": "strict", "domains": ["shop.example.com"]}}}}}}, "CDN_API_UpdateCustomRuleRequest": {"description": "Custom security rule update request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"display_name": {"type": "string", "description": "The display name of the custom security rule."}, "action": {"type": "string", "enum": ["block", "allow", "alert"], "description": "The action applied when the rule matches."}, "priority": {"type": "integer", "minimum": 1, "description": "The priority order for the rule."}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "paths": {"type": "array", "description": "The paths the rule applies to.", "items": {"type": "string", "description": "A path pattern."}}}, "additionalProperties": false, "minProperties": 1}, "examples": {"update": {"summary": "Updates a custom security rule", "value": {"display_name": "Alert login scans", "action": "alert", "priority": 2, "domains": ["shop.example.com"], "paths": ["/login"]}}}}}}, "Environment_Service_API_StartDeploymentRequest": {"description": "Deployment start request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"run_hooks": {"type": "boolean", "description": "Whether to run deployment hooks."}, "code_reference": {"type": "string", "description": "The code reference (branch or tag) to deploy."}, "hooks_argument": {"type": "string", "description": "Additional arguments passed to deployment hooks."}}, "required": ["run_hooks", "code_reference"], "additionalProperties": false, "minProperties": 1}, "examples": {"start_deployment": {"summary": "Start a deployment", "description": "Starts a deployment for the specified environment.", "value": {"run_hooks": true, "code_reference": "release-2025-01-15", "hooks_argument": "--migrate --clear-cache"}}}}}}, "Environment_Service_API_UpdateCodeDeployRequest": {"description": "Code deploy concurrency update request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"concurrency": {"type": "integer", "minimum": 1, "maximum": 100, "description": "Maximum number of concurrent code deploys allowed for the environment."}}, "required": ["concurrency"], "additionalProperties": false, "minProperties": 1}, "examples": {"update_concurrency": {"summary": "Update code deploy concurrency", "description": "Sets the maximum concurrent code deploys for the environment.", "value": {"concurrency": 10}}}}}}, "Environment_Service_API_ReorderSiteInstancesRequest": {"description": "Site instances reorder request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"site_instance_ids": {"type": "array", "description": "List of site instance IDs in the desired priority order.", "items": {"type": "string", "description": "Site instance identifier in the format {siteId}.{environmentId} (dot-separated site and environment UUIDs)."}}}, "required": ["site_instance_ids"], "additionalProperties": false, "minProperties": 1}, "examples": {"reorder": {"summary": "Reorder site instances", "description": "Provides the desired order of site instance IDs for the environment.", "value": {"site_instance_ids": ["3e8ecbec-ea7c-4260-8414-ef2938c859bc.a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3", "b1d8e2f8-67c7-5d1e-cbe1-1f7604f77de4.c2e9f3a9-78d8-6e2f-dcf2-2a8715a88ef5", "d3fa04ba-89e9-4f3a-edf3-3b9826b99fa6.e4ab15cb-90fa-4a4b-fea4-4c0937c00ab7"]}}}}}}, "Environment_Service_API_UpdateEnvironmentRequest": {"description": "Update environment request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"label": {"type": "string", "minLength": 1, "maxLength": 128, "description": "Human-readable label for the environment."}, "description": {"type": "string", "minLength": 1, "maxLength": 512, "description": "Description for the environment."}, "properties": {"type": "object", "description": "PHP and server configuration properties for the environment.", "properties": {"version": {"type": "string", "description": "PHP version (e.g. \"8.3\")."}, "apcu": {"type": "integer", "description": "APCu memory limit in MB."}, "max_execution_time": {"type": "integer", "description": "PHP max execution time in seconds."}, "memory_limit": {"type": "integer", "description": "PHP memory limit in MB."}, "opcache": {"type": "integer", "description": "OPcache memory limit in MB."}, "interned_strings_buffer": {"type": "integer", "description": "OPcache interned strings buffer in MB."}, "client_max_body_size": {"type": "integer", "description": "Nginx client_max_body_size in MB."}, "upload_max_filesize": {"type": "integer", "description": "PHP upload_max_filesize in MB."}, "max_post_size": {"type": "integer", "description": "PHP post_max_size in MB."}, "max_input_vars": {"type": "integer", "description": "PHP max_input_vars."}, "memcached_limit": {"type": "integer", "description": "Memcached memory limit in MB."}, "operating_system": {"type": "string", "description": "Operating system (e.g. \"focal\")."}, "sendmail_path": {"type": "string", "description": "Sendmail path configuration."}}}}, "additionalProperties": false, "minProperties": 1}, "examples": {"update_label": {"summary": "Update environment label", "value": {"label": "Staging", "description": "Staging environment"}}, "update_properties": {"summary": "Update PHP properties", "value": {"properties": {"version": "8.3", "memory_limit": 256}}}}}}}, "Environment_Service_API_ClearCachesRequest": {"description": "Clear caches request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"domains": {"type": "array", "description": "List of domain names to clear caches for.", "minItems": 1, "items": {"type": "string", "description": "A domain name."}}}, "required": ["domains"], "additionalProperties": false}, "examples": {"clear_caches": {"summary": "Clear caches for specific domains", "value": {"domains": ["example.com", "www.example.com"]}}}}}}, "Environment_Service_API_CreateSiteInstanceRequest": {"description": "Create site instance request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"site_id": {"type": "string", "description": "The UUID of the site to associate with this environment."}, "source_environment_id": {"type": "string", "description": "The UUID of the environment to copy files and database from during creation."}, "source_site_id": {"type": "string", "description": "The UUID of the source site to copy files from during creation."}, "hook_arguments": {"type": "string", "description": "Additional arguments to pass to deployment hooks during creation."}}, "required": ["site_id"], "additionalProperties": false}, "examples": {"create": {"summary": "Associate a site with an environment", "value": {"site_id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc"}}}}}}, "Environment_Service_API_CopySiteInstanceFilesRequest": {"description": "Copy site instance files request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"source_environment_id": {"type": "string", "description": "The UUID of the environment to copy files from."}}, "required": ["source_environment_id"], "additionalProperties": false}, "examples": {"copy_files": {"summary": "Copy files from another environment", "value": {"source_environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323"}}}}}}, "Environment_Service_API_CopySiteInstanceDatabaseRequest": {"description": "Copy site instance database request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"source_environment_id": {"type": "string", "description": "The UUID of the environment to copy the database from."}}, "required": ["source_environment_id"], "additionalProperties": false}, "examples": {"copy_database": {"summary": "Copy database from another environment", "value": {"source_environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323"}}}}}}, "Environment_Service_API_AssociatePrivateNetworkRequest": {"description": "Associate private network request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"private_network_id": {"type": "string", "description": "The identifier of the private network to associate with this environment."}}, "required": ["private_network_id"], "additionalProperties": false, "minProperties": 1}, "examples": {"associate": {"summary": "Associate a private network", "value": {"private_network_id": "pn-a1b2c3d4-e5f6-7890-abcd-ef1234567890"}}}}}}, "Environment_Service_API_UpdateTrustedProxiesRequest": {"description": "Update trusted proxies request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"cidrs_ipv4": {"type": "array", "description": "List of trusted IPv4 CIDR blocks.", "items": {"type": "string", "description": "An IPv4 CIDR block (e.g. \"203.0.113.0/24\")."}}, "cidrs_ipv6": {"type": "array", "description": "List of trusted IPv6 CIDR blocks.", "items": {"type": "string", "description": "An IPv6 CIDR block (e.g. \"2001:db8::/32\")."}}, "associated_cdns": {"type": "array", "description": "List of CDN names to associate with this environment.", "items": {"type": "string", "enum": ["akamai", "cloudflare", "fastly"]}}}, "additionalProperties": false, "minProperties": 1}, "examples": {"update": {"summary": "Update trusted proxy configuration", "value": {"cidrs_ipv4": ["203.0.113.0/24"], "cidrs_ipv6": [], "associated_cdns": ["cloudflare"]}}}}}}, "Environment_Service_API_CreateDomainPatternRequest": {"description": "Create domain pattern request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The domain pattern to apply to all associated sites in this environment, optionally followed by a single path segment. The [site-name] token is mandatory; [environment-name] is optional. Domain \u2264 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per environment) are enforced at the service layer.\n", "example": "[site-name].acme.com"}}, "required": ["pattern"], "additionalProperties": false}, "examples": {"create_domain_pattern": {"summary": "Create a domain pattern", "value": {"pattern": "[site-name].acme.com"}}}}}}, "Environment_Service_API_UpdateDomainPatternRequest": {"description": "Update domain pattern request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The updated domain pattern to apply to all associated sites in this environment, optionally followed by a single path segment. The [site-name] token is mandatory. Domain \u2264 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per environment) are enforced at the service layer.\n"}}, "required": ["pattern"], "additionalProperties": false, "minProperties": 1}, "examples": {"update_domain_pattern": {"summary": "Update a domain pattern", "value": {"pattern": "[site-name].staging.acme.com"}}}}}}, "SSH_Key_Service_API_SshKeyRequestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "required": ["label", "public_key"], "description": "Describes the request body for an SSH key.", "properties": {"label": {"type": "string", "description": "The SSH key label."}, "public_key": {"type": "string", "description": "The public key."}}, "additionalProperties": false, "minProperties": 1}, "example": {"label": "mykey", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQChwPHzTTDKDpSbpa2+d22LcbQmsw92eLsUK3Fmei1fiGDkd34NsYCN8m7lsi3NbvdMS83CtPQPWiCveYPzFs1/hHc4PYj8opD2CNnr5iWVVbyaulCYHCgVv4aB/ojcexg8q483A4xJeF15TiCr/gu34rK6ucTvC/tn/rCwJBudczvEwt0klqYwv8Cl/ytaQboSuem5KgSjO3lMrb6CWtfSNhE43ZOw+UBFBqxIninN868vGMkIv9VY34Pwj54rPn/ItQd6Ef4B0KHHaGmzK0vfP+AK7FxNMoHnj3iYT33KZNqtDozdn5tYyH/bThPebEtgqUn+/w5l6wZIC/8zzvls/127ngHk+jNa0PlNyS2TxhPUK4NaPHIEnnrlp07JEYC4ImcBjaYCWAdcTcUkcJjwZQkN4bGmyO9cjICH98SdLD/HxqzTHeaYDbAX/Hu9HfaBb5dXLWsjw3Xc6hoVnUUZbMQyfgb0KgxDLh92eNGxJkpZiL0VDNOWCxDWsNpzwhLNkLqCvI6lyxiLaUzvJAk6dPaRhExmCbU1lDO2eR0FdSwC1TEhJOT9eDIK1r2hztZKs2oa5FNFfB/IFHVWasVFC9N2h/r/egB5zsRxC9MqBLRBq95NBxaRSFng6ML5WZSw41Qi4C/JWVm89rdj2WqScDHYyAdwyyppWU4T5c9Fmw== example@example.com"}}}}, "Site_Service_API_DuplicateSiteRequest": {"description": "Site duplication request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"environment_mapping": {"type": "array", "items": {"type": "string", "pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-]+$", "description": "Environment mapping in the format 'sourceEnvId:targetEnvId'"}, "description": "Array of environment mappings. You must provide exactly one environment mapping. Each entry maps a source environment ID to a target environment ID, separated by a colon.\n", "minItems": 1, "maxItems": 1, "example": ["0ebce493-9d09-479d-a9a8-138a206fa687:a1b2c3d4-e5f6-7890-abcd-ef1234567890"]}, "site_name": {"type": "string", "description": "Machine name for the duplicated site. Must start with a lowercase letter and contain only lowercase letters and numbers. Maximum 14 characters.\n", "minLength": 1, "maxLength": 14, "pattern": "^[a-z][a-z0-9]*$", "example": "dupsite"}, "site_label": {"type": "string", "description": "Human-readable label for the duplicated site. Must only contain letters, numbers, and spaces. Maximum 50 characters.\n", "minLength": 1, "maxLength": 50, "example": "Duplicated Site"}, "site_id": {"type": "string", "format": "uuid", "description": "An optional explicit UUID for the new duplicated site. A UUID is generated automatically if omitted.", "example": "f1a2b3c4-d5e6-7890-abcd-ef1234567890"}, "hook_argument": {"type": "string", "description": "Optional hook argument to pass to the duplication process.", "example": "--verbose"}}, "required": ["environment_mapping", "site_name", "site_label"], "additionalProperties": false}, "examples": {"duplicate_basic": {"summary": "Duplicate a site with required fields", "description": "Duplicates a site with a single environment mapping", "value": {"environment_mapping": ["0ebce493-9d09-479d-a9a8-138a206fa687:a1b2c3d4-e5f6-7890-abcd-ef1234567890"], "site_name": "dupsite", "site_label": "Duplicated Site"}}, "duplicate_with_options": {"summary": "Duplicate a site with all options", "description": "Duplicates a site specifying a custom site ID and hook argument", "value": {"environment_mapping": ["0ebce493-9d09-479d-a9a8-138a206fa687:a1b2c3d4-e5f6-7890-abcd-ef1234567890"], "site_name": "duphook", "site_label": "Dup With Hook", "site_id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", "hook_argument": "my-hook-arg"}}}}}}, "Site_Service_API_CreateSiteRequest": {"description": "Site creation request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"name": {"type": "string", "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", "minLength": 1, "maxLength": 14, "pattern": "^[a-z][a-z0-9]*$", "example": "mysite"}, "label": {"type": "string", "description": "The human-readable label for the site.", "minLength": 1, "maxLength": 50, "example": "My Site"}, "codebase_id": {"type": "string", "description": "The unique identifier of the codebase to associate with this site.", "pattern": "^[a-zA-Z0-9-]+$", "example": "a9b8c7d6-e5f4-3210-abcd-ef9876543210"}, "site_id": {"type": "string", "format": "uuid", "description": "An optional explicit UUID for the new site. A UUID is generated automatically if omitted.", "example": "0ebce493-9d09-479d-a9a8-138a206fa687"}, "description": {"type": "string", "description": "An optional description for the site.", "maxLength": 512, "example": "A production site for the marketing team."}}, "required": ["name", "label", "codebase_id"], "additionalProperties": false}, "examples": {"create_site_full": {"summary": "Create a new site with all fields", "value": {"name": "mysite", "label": "My Site", "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", "site_id": "0ebce493-9d09-479d-a9a8-138a206fa687", "description": "This is a description of my site."}}, "create_site_minimal": {"summary": "Create a new site with required fields only", "value": {"name": "newsitename", "label": "New Site Label", "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210"}}}}}}, "Site_Service_API_UpdateSiteRequest": {"description": "Site update request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"label": {"type": "string", "description": "The new human-readable label for the site.", "minLength": 1, "maxLength": 50, "example": "My Updated Site"}, "description": {"type": "string", "description": "The new description for the site.", "maxLength": 512, "example": "Updated description for this site."}}, "additionalProperties": false, "minProperties": 1}, "examples": {"update_label": {"summary": "Update site label", "value": {"label": "My Updated Site"}}, "update_description": {"summary": "Update site description", "value": {"description": "Updated description for this site."}}, "update_both": {"summary": "Update label and description", "value": {"label": "My Updated Site", "description": "Updated description for this site."}}}}}}, "Federated_Authentication_API_CreateSsoDomain": {"description": "Request body for creating a new domain.", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"domain": {"type": "string", "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", "description": "The domain name to create (e.g., \"acme.com\")."}}, "required": ["domain"], "additionalProperties": false}, "example": {"domain": "acme.com"}}}}, "Federated_Authentication_API_CreateIdentityProvider": {"description": "Request body for creating a new Identity Provider.", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"idp_entity_id": {"type": "string", "format": "uri", "description": "The Identity Provider Entity ID."}, "label": {"type": "string", "description": "The name of the Identity Provider."}, "sso_url": {"type": "string", "format": "uri", "description": "The SSO URL for this IdP."}, "certificate": {"type": "string", "description": "The certificate for this IdP."}}, "required": ["label", "idp_entity_id", "sso_url", "certificate"], "additionalProperties": false}, "example": {"label": "Acme Corporation Azure AD", "idp_entity_id": "https://idp.acme.com/saml", "sso_url": "https://acme.com/sso", "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----"}}}}, "Federated_Authentication_API_UpdateIdentityProvider": {"description": "Request body for updating an existing Identity Provider.", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"label": {"type": "string", "description": "The name of the Identity Provider."}, "certificate": {"type": "string", "description": "The X.509 certificate used for SAML authentication."}, "sso_url": {"type": "string", "format": "uri", "description": "The Single Sign-On URL for the Identity Provider."}, "idp_entity_id": {"type": "string", "format": "uri", "description": "The Identity Provider Entity ID."}}, "additionalProperties": false, "minProperties": 1}, "example": {"label": "Updated Acme Corporation Azure AD", "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", "sso_url": "https://updatedacme.com/sso", "idp_entity_id": "https://idp2.acme.com/saml"}}}}, "Federated_Authentication_API_CreateSsoPolicy": {"$ref": "#/components/requestBodies/Federated_Authentication_API_CreateSsoPolicyRequest"}, "Federated_Authentication_API_UpdateSsoPolicy": {"$ref": "#/components/requestBodies/Federated_Authentication_API_UpdateSsoPolicyRequest"}, "Federated_Authentication_API_UpdateSsoPolicyRequest": {"description": "Request body for updating an SSO policy for an Identity Provider.", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"domain_ids": {"type": "array", "description": "List of verified domain IDs to enforce this Identity Provider for.", "items": {"type": "string", "description": "Reference to a verified SSO domain."}}}, "required": ["domain_ids"], "additionalProperties": false, "minProperties": 1}, "example": {"domain_ids": ["dom-456"]}}}}, "Federated_Authentication_API_CreateSsoPolicyRequest": {"description": "Request body for creating an SSO policy for an Identity Provider.", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"domain_ids": {"type": "array", "description": "List of verified domain IDs to enforce this Identity Provider for.", "items": {"type": "string", "description": "Reference to a verified SSO domain."}}}, "required": ["domain_ids"], "additionalProperties": false}, "example": {"domain_ids": ["dom-456", "dom-789"]}}}}, "Codebase_Service_API_CreateCodebaseRequest": {"description": "Codebase creation request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"codebase_id": {"type": "string", "format": "uuid", "description": "Client-supplied UUID for the new codebase"}, "label": {"type": "string", "description": "Human-readable label for the codebase"}, "region": {"type": "string", "description": "AWS region where the codebase will be created"}}, "required": ["codebase_id", "label", "region"], "additionalProperties": false}, "examples": {"create": {"summary": "Create a codebase", "description": "Creates a new codebase for a subscription", "value": {"codebase_id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", "label": "my-codebase", "region": "us-east-1"}}}}}}, "Codebase_Service_API_CreateDomainPatternRequest": {"description": "Create domain pattern request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The domain pattern to apply to all associated sites in this codebase, optionally followed by a single path segment. Both [site-name] and [environment-name] tokens are mandatory. Domain \u2264 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per codebase) are enforced at the service layer.\n"}}, "required": ["pattern"], "additionalProperties": false}, "examples": {"create_domain_pattern": {"summary": "Create a domain pattern", "value": {"pattern": "[site-name].[environment-name].acme.com"}}}}}}, "Codebase_Service_API_UpdateCodebaseRequest": {"description": "Codebase update request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"label": {"type": "string", "description": "Human-readable label for the codebase"}, "description": {"type": "string", "description": "Description of the codebase"}}, "minProperties": 1, "additionalProperties": false}, "examples": {"update": {"summary": "Update a codebase", "description": "Updates an existing codebase's label and description", "value": {"label": "updated-codebase-label", "description": "Updated codebase description"}}}}}}, "Codebase_Service_API_UpdateDomainPatternRequest": {"description": "Update domain pattern request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The updated domain pattern to apply to all associated sites in this codebase, optionally followed by a single path segment. Both [site-name] and [environment-name] tokens are mandatory. Domain \u2264 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per codebase) are enforced at the service layer.\n"}}, "required": ["pattern"], "additionalProperties": false, "minProperties": 1}, "examples": {"update_domain_pattern": {"summary": "Update a domain pattern", "value": {"pattern": "[site-name].[environment-name].acme.com"}}}}}}}, "schemas": {"Failover_Service_API_FailoverGroup": {"type": "object", "properties": {"id": {"type": "string", "description": "Unique identifier for the failover group.", "example": "b2c3d4e5-f6a7-8901-bcde-f12345678901"}, "name": {"type": "string", "description": "The name of the failover group.", "example": "Primary Failover Group"}, "status": {"type": "string", "enum": ["creating", "normal", "failed-over", "failing-over", "error", "deleting", "deleted"], "description": "The current status of the failover group.", "example": "normal"}, "pairs": {"type": "array", "description": "The list of failover pairs belonging to this failover group.", "items": {"$ref": "#/components/schemas/Failover_Service_API_FailoverPair"}}}, "required": ["id", "name", "status", "pairs"]}, "Failover_Service_API_FailoverPair": {"type": "object", "properties": {"service_name": {"type": "string", "description": "The name of the service for this failover pair.", "example": "my-application-service"}, "primary_id": {"type": "string", "description": "The ID of the primary resource in the failover pair.", "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"}, "failover_id": {"type": "string", "description": "The UUID of the failover resource in the failover pair.", "example": "f1e2d3c4-b5a6-7890-fedc-ba9876543210"}}, "required": ["service_name", "primary_id", "failover_id"]}, "Failover_Service_API_MultiRegionFailoverStatus": {"type": "object", "properties": {"is_enabled": {"type": "boolean", "description": "Whether multi-region failover is enabled for the environment."}, "failover_group_id": {"type": "string", "description": "The identifier of the failover group associated with the environment."}, "is_traffic_failed_over": {"type": "boolean", "description": "Whether traffic has been failed over to the secondary region."}}, "required": ["is_enabled"]}, "Failover_Service_API_HalLink": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "Failover_Service_API_HalItem": {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"$ref": "#/components/schemas/Failover_Service_API_HalLink"}}, "required": ["self"], "additionalProperties": {"$ref": "#/components/schemas/Failover_Service_API_HalLink"}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, "Failover_Service_API_HalCollection": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_HalItem"}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "Failover_Service_API_PaginatedCollection": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"$ref": "#/components/schemas/Failover_Service_API_HalLink", "description": "Link to the previous page (templated)"}, "next": {"$ref": "#/components/schemas/Failover_Service_API_HalLink", "description": "Link to the next page (templated)"}, "offset": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"$ref": "#/components/schemas/Failover_Service_API_HalLink"}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, "Failover_Service_API_FilteredCollection": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"$ref": "#/components/schemas/Failover_Service_API_HalLink"}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, "Failover_Service_API_ValidationError": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "Failover_Service_API_Error": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, "Failover_Service_API_UnauthorizedError": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "Failover_Service_API_ForbiddenError": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "Failover_Service_API_InternalServerError": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "Failover_Service_API_Message": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_HalItem"}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, "Failover_Service_API_InvalidOperationError": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "Failover_Service_API_NotFoundError": {"allOf": [{"$ref": "#/components/schemas/Failover_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "API_Specs_API_Error": {"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, "API_Specs_API_InternalServerError": {"allOf": [{"$ref": "#/components/schemas/API_Specs_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "CDN_API_Domain": {"type": "object", "description": "CDN domain resource.", "properties": {"domain": {"type": "string", "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?(\\.[a-zA-Z]{2,})+$", "description": "The fully qualified domain name."}, "subscription_uuid": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "The unique identifier of the subscription the domain belongs to."}, "environment_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "The environment identifier associated with the domain."}, "application_name": {"type": "string", "description": "The name of the application associated with the domain."}, "status": {"type": "string", "description": "The current status of the domain.", "enum": ["connecting-to-edge", "domain-validation-pending", "ready-for-dns-repointing", "configuration-failed", "configured"]}, "ownership_validation_cname": {"type": "string", "description": "The CNAME record that must be created on the domain's DNS to validate ownership."}, "bandwidth_usage_tb": {"type": "number", "format": "float", "description": "The bandwidth usage for the domain in terabytes."}, "created_at": {"type": "string", "format": "date-time", "description": "The timestamp when the domain was created."}, "updated_at": {"type": "string", "format": "date-time", "description": "The timestamp when the domain was last updated."}}, "required": ["domain", "subscription_uuid", "environment_id", "status", "application_name", "ownership_validation_cname", "bandwidth_usage_tb", "created_at", "updated_at"]}, "CDN_API_SecurityRuleSet": {"type": "object", "properties": {"id": {"type": "integer", "minimum": 1, "description": "The unique identifier of the security ruleset."}, "name": {"type": "string", "description": "The display name of the security ruleset."}, "is_enabled": {"type": "boolean", "description": "Indicates whether the security ruleset is enabled."}, "description": {"type": "string", "description": "The description of the security ruleset."}, "type": {"type": "string", "description": "The type of the security ruleset.", "enum": ["owasp", "acquia-managed"]}}, "required": ["id", "name", "is_enabled"]}, "CDN_API_IpRule": {"type": "object", "properties": {"id": {"type": "integer", "minimum": 1, "description": "The unique identifier of the IP rule."}, "display_name": {"type": "string", "description": "The display name of the IP rule."}, "action": {"type": "string", "enum": ["block", "allow"], "description": "The action applied when the rule matches."}, "description": {"type": "string", "description": "The description of the IP rule."}, "ips": {"type": "array", "description": "The IPs or CIDR blocks associated with the rule.", "items": {"type": "string", "description": "An IP address or CIDR block."}}, "created_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was created."}, "updated_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was last updated."}}, "required": ["id", "display_name", "action", "ips", "created_at", "updated_at"]}, "CDN_API_CustomRule": {"type": "object", "properties": {"id": {"type": "integer", "minimum": 1, "description": "The unique identifier of the custom security rule."}, "display_name": {"type": "string", "description": "The display name of the custom security rule."}, "action": {"type": "string", "enum": ["block", "allow", "alert"], "description": "The action applied when the rule matches."}, "priority": {"type": "integer", "minimum": 1, "description": "The priority order for the rule. Lower values are evaluated first.\nPriorities must be unique within a subscription \u2014 creating or\nupdating a rule with a priority already in use replaces the\nexisting rule at that priority.\n"}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "paths": {"type": "array", "description": "The paths the rule applies to.", "items": {"type": "string", "description": "A path pattern."}}, "mapped_domains_count": {"type": "integer", "description": "The number of domains the rule is mapped to."}, "targets": {"type": "array", "description": "Conditions that must match for the rule to fire.", "items": {"oneOf": [{"description": "Range match for IP or ASN ranges.", "type": "object", "required": ["attribute", "criteria", "value"], "additionalProperties": false, "properties": {"attribute": {"type": "string", "description": "The request attribute the rule inspects.", "enum": ["source-ip", "asn"]}, "criteria": {"type": "string", "description": "How `value` is compared against `attribute`.", "enum": ["range"]}, "value": {"type": "object", "description": "Range bounds for IP or ASN ranges.", "additionalProperties": false, "required": ["from", "to"], "properties": {"from": {"type": "string", "description": "The start of the range."}, "to": {"type": "string", "description": "The end of the range."}}}}}, {"description": "Value-list match for non-header, non-query attributes.", "type": "object", "required": ["attribute", "criteria", "value"], "additionalProperties": false, "properties": {"attribute": {"type": "string", "description": "The request attribute the rule inspects.", "enum": ["source-ip", "country", "method", "path", "asn"]}, "criteria": {"type": "string", "description": "How `value` is compared against `attribute`.", "enum": ["equals", "contains", "regex"]}, "value": {"type": "object", "description": "A list of candidate values combined with OR.", "additionalProperties": false, "required": ["values"], "properties": {"values": {"type": "array", "description": "The list of values.", "items": {"type": "string", "description": "A value."}}}}}}, {"description": "Key-value match for header or query-string attributes.", "type": "object", "required": ["attribute", "criteria", "value"], "additionalProperties": false, "properties": {"attribute": {"type": "string", "description": "The request attribute the rule inspects.", "enum": ["header", "query-string"]}, "criteria": {"type": "string", "description": "How `value` is compared against `attribute`.", "enum": ["equals", "contains", "regex"]}, "value": {"type": "object", "description": "Key-value matchers for header or query-string attributes.", "additionalProperties": false, "required": ["key_value_pairs"], "properties": {"key_value_pairs": {"type": "array", "description": "The list of key-value pairs.", "items": {"type": "object", "description": "A key-value pair.", "required": ["key", "value"], "properties": {"key": {"type": "string", "description": "The header or query-parameter name."}, "value": {"type": "string", "description": "The expected value."}}}}}}}}]}}, "created_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was created."}, "updated_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was last updated."}}, "required": ["id", "display_name", "action", "priority", "domains", "paths", "created_at", "updated_at", "targets"]}, "CDN_API_RateLimitingRule": {"type": "object", "properties": {"id": {"type": "integer", "minimum": 1, "description": "The unique identifier of the rate limiting rule."}, "display_name": {"type": "string", "description": "The display name of the rate limiting rule."}, "action": {"type": "string", "enum": ["block", "alert"], "description": "The action applied when the rule matches."}, "rate_limit_per_minute": {"type": "string", "enum": ["lenient", "moderate", "strict"], "description": "The rate limit category applied to the rule."}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "created_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was created."}, "updated_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was last updated."}}, "required": ["id", "display_name", "action", "rate_limit_per_minute", "domains", "created_at", "updated_at"]}, "CDN_API_HalLink": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "CDN_API_HalItem": {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"$ref": "#/components/schemas/CDN_API_HalLink"}}, "required": ["self"], "additionalProperties": {"$ref": "#/components/schemas/CDN_API_HalLink"}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, "CDN_API_HalCollection": {"allOf": [{"$ref": "#/components/schemas/CDN_API_HalItem"}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "CDN_API_PaginatedCollection": {"allOf": [{"$ref": "#/components/schemas/CDN_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"$ref": "#/components/schemas/CDN_API_HalLink", "description": "Link to the previous page (templated)"}, "next": {"$ref": "#/components/schemas/CDN_API_HalLink", "description": "Link to the next page (templated)"}, "offset": {"allOf": [{"$ref": "#/components/schemas/CDN_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"$ref": "#/components/schemas/CDN_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"$ref": "#/components/schemas/CDN_API_HalLink"}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, "CDN_API_FilteredCollection": {"allOf": [{"$ref": "#/components/schemas/CDN_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"$ref": "#/components/schemas/CDN_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"$ref": "#/components/schemas/CDN_API_HalLink"}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, "CDN_API_SortedCollection": {"allOf": [{"$ref": "#/components/schemas/CDN_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"$ref": "#/components/schemas/CDN_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"$ref": "#/components/schemas/CDN_API_HalLink"}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, "CDN_API_ValidationError": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "CDN_API_Error": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, "CDN_API_UnauthorizedError": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "CDN_API_ForbiddenError": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "CDN_API_NotFoundError": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "CDN_API_InternalServerError": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "CDN_API_Message": {"allOf": [{"$ref": "#/components/schemas/CDN_API_HalItem"}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, "CDN_API_InvalidOperationError": {"allOf": [{"$ref": "#/components/schemas/CDN_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "Environment_Service_API_SiteInstance": {"type": "object", "description": "Site Instance properties", "properties": {"site_id": {"type": "string", "description": "The unique identifier of the site", "pattern": "^[a-zA-Z0-9-]+$"}, "environment_id": {"type": "string", "description": "The unique identifier of the environment", "pattern": "^[a-zA-Z0-9-]+$"}, "status": {"type": "string", "description": "The current status of the site instance", "enum": ["active", "creating", "create-failed", "updating", "update-failed", "deleting", "deleted", "delete-failed"]}, "health_status": {"type": "object", "description": "Health status information for the site instance", "properties": {"code": {"type": "string", "description": "Health status code"}, "summary": {"type": "string", "description": "Summary of the health status"}, "details": {"type": "string", "description": "Detailed health status information"}}, "required": ["code", "summary", "details"]}, "domains": {"type": "array", "description": "List of domains associated with the site instance", "items": {"type": "string"}}, "deployment_order": {"type": ["integer", "null"], "description": "The order in which this site instance is deployed relative to others.", "example": 1}, "delete_at": {"type": ["string", "null"], "format": "date-time", "description": "The scheduled deletion date-time for this site instance, if set."}, "date_marked_for_deletion": {"type": ["string", "null"], "format": "date-time", "description": "The date-time when this site instance was marked for deletion."}, "protection_mode": {"type": ["object", "null"], "description": "The current protection mode of the site instance", "properties": {"is_enabled": {"type": "boolean", "description": "Indicates whether the protection mode is enabled for the site instance"}, "is_inherited": {"type": "boolean", "description": "Indicates whether the protection mode is inherited from the environment"}}, "required": ["is_enabled", "is_inherited"]}}, "required": ["site_id", "environment_id", "status", "health_status", "domains"]}, "Environment_Service_API_Environment": {"type": "object", "description": "Environment properties", "properties": {"id": {"type": "string", "description": "The unique identifier of the environment", "pattern": "^[a-zA-Z0-9-]+$"}, "name": {"type": "string", "description": "The machine name of the environment"}, "label": {"type": "string", "description": "The human-readable label of the environment"}, "description": {"type": "string", "description": "A description of the environment"}, "status": {"type": "string", "description": "The current status of the environment", "enum": ["normal", "allocated", "launching", "killed", "cancelled", "stopped"]}, "flags": {"type": "object", "description": "Environment configuration flags", "additionalProperties": {"type": "boolean"}}, "properties": {"type": "object", "description": "Environment PHP and server properties", "properties": {"version": {"type": "string", "description": "PHP version"}, "max_execution_time": {"type": "integer", "description": "Maximum execution time in seconds"}, "memory_limit": {"type": "integer", "description": "Memory limit in MB"}, "apcu": {"type": "integer", "description": "APCu cache size in MB"}, "client_max_body_size": {"type": "integer", "description": "Maximum client body size in MB"}, "max_input_vars": {"type": "integer", "description": "Maximum number of input variables"}, "max_post_size": {"type": "integer", "description": "Maximum POST size in MB"}, "memcached_limit": {"type": "integer", "description": "Memcached limit in MB"}, "upload_max_filesize": {"type": "integer", "description": "Maximum upload file size in MB"}, "operating_system": {"type": "string", "description": "Operating system codename"}}}, "reference": {"type": "string", "description": "The code reference (branch, tag, or commit) deployed to this environment"}, "code_switch_status": {"type": "string", "description": "The status of the Switch Code action", "enum": ["IDLE", "IN_PROGRESS"]}, "ssh_url": {"type": "string", "format": "uri", "description": "The SSH connection string for accessing this environment"}}, "required": ["id", "name", "label", "status", "flags", "properties", "reference", "code_switch_status", "ssh_url"]}, "Environment_Service_API_EmbeddedCodebase": {"type": "object", "description": "Embedded codebase resource", "properties": {"id": {"type": "string", "description": "The unique identifier of the codebase"}}, "required": ["id"]}, "Environment_Service_API_Deployment": {"type": "object", "description": "Deployment properties", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the deployment."}, "environment_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Identifier of the environment this deployment belongs to."}, "status": {"type": "string", "description": "Current status of the deployment.", "enum": ["waiting", "received", "started", "done", "failed", "error", "killed"]}, "code_reference": {"type": "string", "description": "The code reference (e.g. branch or tag) deployed."}, "run_hooks": {"type": "boolean", "description": "Whether deployment hooks were run."}, "hooks_argument": {"type": ["string", "null"], "description": "Additional arguments passed to deployment hooks."}, "created_at": {"type": "string", "format": "date-time", "description": "Timestamp when the deployment was created."}, "started_at": {"type": ["string", "null"], "format": "date-time", "description": "Timestamp when the deployment started."}, "completed_at": {"type": ["string", "null"], "format": "date-time", "description": "Timestamp when the deployment completed."}, "sender_id": {"type": ["string", "null"], "description": "Identifier of the user or system that initiated the deployment."}, "logs": {"type": ["string", "null"], "description": "Deployment log output."}}, "required": ["id", "environment_id", "status", "code_reference", "run_hooks", "created_at"]}, "Environment_Service_API_CodeDeploy": {"type": "object", "properties": {"concurrency": {"type": "integer", "minimum": 1, "maximum": 100, "description": "Maximum number of concurrent code deploys allowed for the environment."}}, "required": ["concurrency"]}, "Environment_Service_API_Domain": {"type": "object", "description": "Domain properties", "properties": {"name": {"type": "string", "description": "The domain name."}, "is_managed": {"type": "boolean", "description": "Whether the domain is managed by Acquia."}}, "required": ["name", "is_managed"]}, "Environment_Service_API_DomainStatus": {"type": "object", "description": "Domain DNS status properties", "properties": {"hostname": {"type": "string", "description": "The domain name."}, "site_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Identifier of the site this domain belongs to."}, "environment_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Identifier of the environment this domain belongs to."}, "ip_addresses": {"type": "array", "description": "List of IP addresses resolving for this domain.", "items": {"type": "string"}}, "cnames": {"type": "array", "description": "List of CNAME records resolving for this domain.", "items": {"type": "string"}}, "flags": {"type": "object", "description": "Status flags for the domain.", "properties": {"default": {"type": "boolean", "description": "Whether this is the default domain."}, "active": {"type": "boolean", "description": "Whether the domain is active."}, "dns_resolves": {"type": "boolean", "description": "Whether the domain DNS resolves correctly."}, "acquia_hosted": {"type": "boolean", "description": "Whether the domain is hosted on Acquia infrastructure."}}, "required": ["default", "active", "dns_resolves", "acquia_hosted"]}}, "required": ["hostname", "site_id", "environment_id", "ip_addresses", "cnames", "flags"]}, "Environment_Service_API_Database": {"type": "object", "description": "Database properties", "properties": {"database_name": {"type": "string", "description": "The name of the database."}, "database_role": {"type": "string", "description": "The role of the database (e.g. the site username)."}}, "required": ["database_name", "database_role"]}, "Environment_Service_API_DatabaseConnection": {"type": "object", "description": "Database connection credential properties", "properties": {"db_host": {"type": "string", "description": "The database host."}, "name": {"type": "string", "description": "The database name."}, "password": {"type": "string", "description": "The database password."}, "user_name": {"type": "string", "description": "The database username."}, "ssh_host": {"type": "string", "description": "The SSH host for tunneling to the database."}}, "required": ["db_host", "name", "password", "user_name", "ssh_host"]}, "Environment_Service_API_DatabaseBackup": {"type": "object", "description": "Database backup properties", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the database backup."}, "database_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Identifier of the database this backup belongs to."}, "created_at": {"type": "string", "format": "date-time", "description": "Timestamp when the backup was created."}, "type": {"type": "string", "enum": ["DAILY", "ON_DEMAND"], "description": "The type of backup."}}, "required": ["id", "database_id", "created_at", "type"]}, "Environment_Service_API_EgressIp": {"type": "object", "description": "Egress IP properties", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the egress IP."}, "status": {"type": "string", "description": "Current status of the egress IP."}, "ipv4": {"type": "string", "description": "The IPv4 address."}, "ipv6": {"type": ["string", "null"], "description": "The IPv6 address, if assigned."}, "flags": {"type": "object", "description": "Status flags for the egress IP.", "additionalProperties": {"type": "boolean"}}}, "required": ["id", "status", "ipv4", "flags"]}, "Environment_Service_API_TrustedProxies": {"type": "object", "description": "Trusted proxy configuration properties", "properties": {"cidrs_ipv4": {"type": "array", "description": "List of trusted IPv4 CIDR blocks.", "items": {"type": "string"}}, "cidrs_ipv6": {"type": "array", "description": "List of trusted IPv6 CIDR blocks.", "items": {"type": "string"}}, "associated_cdns": {"type": "object", "description": "Map of CDN configurations associated with this environment, keyed by CDN name.", "additionalProperties": {"type": "object", "properties": {"label": {"type": "string", "description": "Display label for the CDN."}, "is_enabled": {"type": "boolean", "description": "Whether the CDN is enabled."}}, "required": ["label", "is_enabled"]}}}, "required": ["cidrs_ipv4", "cidrs_ipv6", "associated_cdns"]}, "Environment_Service_API_PrivateNetwork": {"type": "object", "description": "Private network reference properties", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the private network."}, "label": {"type": ["string", "null"], "description": "Human-readable label for the private network."}}, "required": ["id"]}, "Environment_Service_API_DomainPattern": {"type": "object", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the domain pattern."}, "pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].acme.com/app). The [site-name] token is mandatory; [environment-name] is optional at environment level. Domain rules (enforced in service layer): \u2264 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] \u2264 14 chars). One pattern per environment.\n", "example": "[site-name].acme.com"}}, "required": ["id", "pattern"]}, "Environment_Service_API_HalLink": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "Environment_Service_API_HalItem": {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"$ref": "#/components/schemas/Environment_Service_API_HalLink"}}, "required": ["self"], "additionalProperties": {"$ref": "#/components/schemas/Environment_Service_API_HalLink"}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, "Environment_Service_API_HalCollection": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalItem"}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "Environment_Service_API_PaginatedCollection": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"$ref": "#/components/schemas/Environment_Service_API_HalLink", "description": "Link to the previous page (templated)"}, "next": {"$ref": "#/components/schemas/Environment_Service_API_HalLink", "description": "Link to the next page (templated)"}, "offset": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"$ref": "#/components/schemas/Environment_Service_API_HalLink"}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, "Environment_Service_API_FilteredCollection": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"$ref": "#/components/schemas/Environment_Service_API_HalLink"}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, "Environment_Service_API_ValidationError": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "Environment_Service_API_Error": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, "Environment_Service_API_UnauthorizedError": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "Environment_Service_API_ForbiddenError": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "Environment_Service_API_NotFoundError": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "Environment_Service_API_InternalServerError": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "Environment_Service_API_Message": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalItem"}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, "Environment_Service_API_InvalidOperationError": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "Environment_Service_API_SortedCollection": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"$ref": "#/components/schemas/Environment_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"$ref": "#/components/schemas/Environment_Service_API_HalLink"}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, "SSH_Key_Service_API_HalLink": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}, "SSH_Key_Service_API_HalItem": {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"$ref": "#/components/schemas/SSH_Key_Service_API_HalLink"}}, "required": ["self"], "additionalProperties": {"$ref": "#/components/schemas/SSH_Key_Service_API_HalLink"}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, "SSH_Key_Service_API_HalCollection": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_HalItem"}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "SSH_Key_Service_API_PaginatedCollection": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"$ref": "#/components/schemas/SSH_Key_Service_API_HalLink", "description": "Link to the previous page (templated)"}, "next": {"$ref": "#/components/schemas/SSH_Key_Service_API_HalLink", "description": "Link to the next page (templated)"}, "offset": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_HalLink"}, {"properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_HalLink"}, {"properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"$ref": "#/components/schemas/SSH_Key_Service_API_HalLink"}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}]}, "SSH_Key_Service_API_FilteredCollection": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_HalLink"}, {"properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering."}}, "additionalProperties": {"$ref": "#/components/schemas/SSH_Key_Service_API_HalLink"}}}}]}, "SSH_Key_Service_API_SortedCollection": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_HalLink"}, {"properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting."}}, "additionalProperties": {"$ref": "#/components/schemas/SSH_Key_Service_API_HalLink"}}}}]}, "SSH_Key_Service_API_SshKey": {"allOf": [{"type": "object", "required": ["id", "label", "public_key", "fingerprint", "created_at", "user_id"], "description": "Details an SSH key.", "properties": {"id": {"type": "string", "description": "The unique identifier of the SSH key.", "pattern": "^[a-zA-Z0-9-]+$"}, "label": {"type": "string", "description": "The human-readable key label."}, "public_key": {"type": "string", "description": "The public key.", "minLength": 64}, "fingerprint": {"type": "string", "description": "The public key fingerprint.", "pattern": "^[A-Za-z0-9:+/=.-]+$"}, "created_at": {"type": "string", "format": "date-time", "description": "The key creation date."}, "user_id": {"type": "string", "description": "The unique identifier of the user who owns this SSH key.", "pattern": "^[a-zA-Z0-9-]+$"}}}, {"$ref": "#/components/schemas/SSH_Key_Service_API_HalItem"}]}, "SSH_Key_Service_API_SshKeys": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_HalCollection"}, {"$ref": "#/components/schemas/SSH_Key_Service_API_PaginatedCollection"}, {"$ref": "#/components/schemas/SSH_Key_Service_API_FilteredCollection"}, {"$ref": "#/components/schemas/SSH_Key_Service_API_SortedCollection"}, {"type": "object", "description": "A collection of SSH keys.", "properties": {"_embedded": {"type": "object", "description": "A collection of SSH keys matching the request parameters.", "properties": {"items": {"type": "array", "items": {"$ref": "#/components/schemas/SSH_Key_Service_API_SshKey"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "SSH_Key_Service_API_Message": {"allOf": [{"type": "object", "required": ["message"], "properties": {"message": {"type": "string", "description": "The human-friendly confirmation of the operation."}}}, {"$ref": "#/components/schemas/SSH_Key_Service_API_HalItem"}]}, "SSH_Key_Service_API_ValidationError": {"type": "object", "required": ["error", "message"], "description": "A validation error.", "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "object", "description": "The validation error message keyed by its field or group name.", "additionalProperties": {"type": "string"}}}}, "SSH_Key_Service_API_Error": {"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, "SSH_Key_Service_API_UnauthorizedError": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "SSH_Key_Service_API_ForbiddenError": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "SSH_Key_Service_API_NotFoundError": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "SSH_Key_Service_API_InvalidOperationError": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "SSH_Key_Service_API_InternalServerError": {"allOf": [{"$ref": "#/components/schemas/SSH_Key_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "Site_Service_API_Site": {"type": "object", "description": "A Site resource", "properties": {"id": {"type": "string", "description": "The unique identifier of the site", "pattern": "^[a-zA-Z0-9-]+$", "example": "12345678-1234-1234-1234-123456789012"}, "name": {"type": "string", "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", "minLength": 1, "maxLength": 14, "pattern": "^[a-z][a-z0-9]*$", "example": "mysite"}, "label": {"type": "string", "description": "The human-readable label of the site", "minLength": 1, "maxLength": 50, "example": "My Site 1"}, "description": {"type": "string", "description": "A description of the site", "maxLength": 512, "example": "A production site for the marketing team."}, "codebase_id": {"type": "string", "description": "The unique identifier of the codebase this site belongs to", "pattern": "^[a-zA-Z0-9-]+$", "example": "550e8400-e29b-41d4-a716-446655441210"}, "status": {"type": "string", "description": "The current lifecycle status of the site. ready indicates the site is active and operational. marked-for-deletion indicates the site has been scheduled for deletion and can still be recovered.\n", "enum": ["ready", "marked-for-deletion"], "example": "ready"}, "delete_at": {"type": "string", "format": "date-time", "description": "ISO 8601 datetime indicating when the site is scheduled for deletion. Only present when status is marked-for-deletion.", "example": "2025-06-15T00:00:00Z"}}, "required": ["id", "name", "label", "codebase_id", "status"]}, "Site_Service_API_HalLink": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "Site_Service_API_HalItem": {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"$ref": "#/components/schemas/Site_Service_API_HalLink"}}, "required": ["self"], "additionalProperties": {"$ref": "#/components/schemas/Site_Service_API_HalLink"}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, "Site_Service_API_HalCollection": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_HalItem"}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "Site_Service_API_PaginatedCollection": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"$ref": "#/components/schemas/Site_Service_API_HalLink", "description": "Link to the previous page (templated)"}, "next": {"$ref": "#/components/schemas/Site_Service_API_HalLink", "description": "Link to the next page (templated)"}, "offset": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"$ref": "#/components/schemas/Site_Service_API_HalLink"}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, "Site_Service_API_FilteredCollection": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"$ref": "#/components/schemas/Site_Service_API_HalLink"}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, "Site_Service_API_SortedCollection": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"$ref": "#/components/schemas/Site_Service_API_HalLink"}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, "Site_Service_API_ValidationError": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "Site_Service_API_Error": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, "Site_Service_API_UnauthorizedError": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "Site_Service_API_ForbiddenError": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "Site_Service_API_InternalServerError": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "Site_Service_API_Message": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_HalItem"}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, "Site_Service_API_NotFoundError": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "Site_Service_API_InvalidOperationError": {"allOf": [{"$ref": "#/components/schemas/Site_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "Federated_Authentication_API_IdentityProvider": {"type": "object", "properties": {"identity_provider_id": {"type": "string", "description": "Unique identifier for the identity provider."}, "label": {"type": "string", "description": "The name of the Identity Provider."}, "subscription_id": {"type": "string", "description": "Unique identifier for the subscription that the Identity Provider belongs to."}, "idp_entity_id": {"type": "string", "format": "uri", "description": "The Identity Provider Entity ID."}, "sp_entity_id": {"type": "string", "format": "uri", "description": "The Service Provider Entity ID."}, "sso_url": {"type": "string", "format": "uri", "description": "The Single Sign-On URL for the Identity Provider."}, "certificate": {"type": "string", "description": "The X.509 certificate used for SAML authentication."}, "created_at": {"type": "string", "format": "date-time", "description": "Timestamp when the Identity Provider was created."}}, "required": ["identity_provider_id", "label", "subscription_id", "idp_entity_id", "sp_entity_id", "sso_url", "certificate", "created_at"]}, "Federated_Authentication_API_SsoDomain": {"type": "object", "properties": {"domain_id": {"type": "string", "description": "Unique identifier for the domain."}, "domain": {"type": "string", "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", "description": "The domain name (e.g., \"acme.com\")."}, "subscription_id": {"type": "string", "description": "Unique identifier for the subscription that the domain belongs to."}, "health": {"type": "object", "description": "The overall verification health of the domain. Uses the same code semantics as the platform email domain-verification system: `200` verified, `202` verification pending or in progress, `404` DNS record not found or could not be validated.", "properties": {"code": {"type": "string", "enum": ["200", "202", "404"], "description": "Machine-readable verification status code. `200` \u2014 verified. `202` \u2014 verification pending or in progress; retry after propagation. `404` \u2014 DNS TXT record not found or does not match expected value."}, "summary": {"type": "string", "description": "Short human-readable label for the verification state (e.g., \"Verified\", \"Verification pending\", \"Missing DNS record\")."}, "details": {"type": "string", "description": "Actionable explanation of the current state. For `404`, describes what was checked and what the customer should do next."}}, "required": ["code", "summary", "details"]}, "verification_record": {"type": "object", "description": "DNS TXT record the customer must publish to verify domain ownership.", "properties": {"type": {"type": "string", "const": "TXT", "description": "DNS record type."}, "host": {"type": "string", "description": "DNS record host name."}, "value": {"type": "string", "description": "Expected DNS record value."}, "health": {"type": "object", "description": "Verification health specific to this DNS record. Anchors the failure reason to the exact record the customer needs to fix, matching the per-record health pattern used in platform email domain verification.", "properties": {"code": {"type": "string", "enum": ["200", "202", "404"], "description": "`200` \u2014 record found and value matches. `202` \u2014 check in progress. `404` \u2014 record not found or value does not match."}, "summary": {"type": "string", "description": "Short human-readable label for this record's verification state."}, "details": {"type": "string", "description": "Actionable explanation; for `404`, states what was checked and what to fix."}}, "required": ["code", "summary", "details"]}}, "required": ["type", "host", "value", "health"]}, "verified_at": {"type": "string", "format": "date-time", "description": "Timestamp when the domain was successfully verified. Present only when `health.code` is `200`."}}, "required": ["domain_id", "domain", "subscription_id", "health", "verification_record"]}, "Federated_Authentication_API_SsoPolicy": {"type": "object", "description": "SSO policy that enforces an Identity Provider for specific domains.", "properties": {"status": {"type": "string", "enum": ["enabled", "disabled"], "default": "disabled", "description": "The status of the SSO policy. When enabled, the policy enforces SSO for the specified domains. Defaults to disabled on creation."}, "_embedded": {"type": "object", "description": "Embedded resources for the SSO policy.", "properties": {"domains": {"type": "array", "description": "The SSO domains enforced by this policy, each with a self link back to the authoritative SsoDomain resource.", "items": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_SsoDomain"}, {"$ref": "#/components/schemas/Federated_Authentication_API_HalItem"}]}}}, "required": ["domains"]}}, "required": ["status", "_embedded"]}, "Federated_Authentication_API_HalLink": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "Federated_Authentication_API_HalItem": {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"$ref": "#/components/schemas/Federated_Authentication_API_HalLink"}}, "required": ["self"], "additionalProperties": {"$ref": "#/components/schemas/Federated_Authentication_API_HalLink"}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, "Federated_Authentication_API_HalCollection": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_HalItem"}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "Federated_Authentication_API_PaginatedCollection": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"$ref": "#/components/schemas/Federated_Authentication_API_HalLink", "description": "Link to the previous page (templated)"}, "next": {"$ref": "#/components/schemas/Federated_Authentication_API_HalLink", "description": "Link to the next page (templated)"}, "offset": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"$ref": "#/components/schemas/Federated_Authentication_API_HalLink"}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, "Federated_Authentication_API_FilteredCollection": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"$ref": "#/components/schemas/Federated_Authentication_API_HalLink"}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, "Federated_Authentication_API_SortedCollection": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"$ref": "#/components/schemas/Federated_Authentication_API_HalLink"}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, "Federated_Authentication_API_ValidationError": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "Federated_Authentication_API_Error": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, "Federated_Authentication_API_UnauthorizedError": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "Federated_Authentication_API_ForbiddenError": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "Federated_Authentication_API_NotFoundError": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "Federated_Authentication_API_InternalServerError": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "Federated_Authentication_API_Message": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_HalItem"}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, "Federated_Authentication_API_InvalidOperationError": {"allOf": [{"$ref": "#/components/schemas/Federated_Authentication_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "Codebase_Service_API_Codebase": {"type": "object", "properties": {"id": {"type": "string", "description": "Unique identifier for the codebase"}, "label": {"type": "string", "description": "Human-readable label for the codebase"}, "region": {"type": "string", "description": "AWS region of the codebase"}, "vcs_url": {"type": "string", "format": "uri", "description": "VCS repository URL"}, "repository_id": {"type": "string", "description": "VCS repository identifier"}, "created_at": {"type": "string", "format": "date-time", "description": "Creation timestamp"}, "updated_at": {"type": "string", "format": "date-time", "description": "Last update timestamp"}, "description": {"type": "string", "description": "Description of the codebase"}, "flags": {"type": "object", "properties": {"is_active": {"type": "boolean", "description": "Whether the codebase is active"}, "is_meo": {"type": "boolean", "description": "Whether the codebase is MEO"}}, "required": ["is_active", "is_meo"], "description": "Feature flags for the codebase"}, "hash": {"type": "string", "description": "Codebase hash"}, "applications_total": {"type": "integer", "description": "Total number of applications linked to this codebase"}}, "required": ["id", "label", "region", "vcs_url", "repository_id", "created_at", "updated_at", "flags", "hash", "applications_total"]}, "Codebase_Service_API_CodebaseReference": {"type": "object", "properties": {"id": {"type": "string", "description": "Unique identifier for the reference"}, "name": {"type": "string", "description": "Name of the git reference"}, "type": {"type": "string", "enum": ["branch", "tag"], "description": "Type of the git reference"}}, "required": ["id", "name", "type"]}, "Codebase_Service_API_DomainPattern": {"type": "object", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the domain pattern."}, "pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].[environment-name].acme.com/app). Both [site-name] and [environment-name] tokens are mandatory at codebase level. Domain rules (enforced in service layer): \u2264 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] \u2264 14 chars, [environment-name] \u2264 10 chars). One pattern per codebase.\n", "example": "[site-name].[environment-name].acme.com"}}, "required": ["id", "pattern"]}, "Codebase_Service_API_HalLink": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "Codebase_Service_API_HalItem": {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"$ref": "#/components/schemas/Codebase_Service_API_HalLink"}}, "required": ["self"], "additionalProperties": {"$ref": "#/components/schemas/Codebase_Service_API_HalLink"}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, "Codebase_Service_API_HalCollection": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_HalItem"}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "Codebase_Service_API_PaginatedCollection": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"$ref": "#/components/schemas/Codebase_Service_API_HalLink", "description": "Link to the previous page (templated)"}, "next": {"$ref": "#/components/schemas/Codebase_Service_API_HalLink", "description": "Link to the next page (templated)"}, "offset": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"$ref": "#/components/schemas/Codebase_Service_API_HalLink"}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, "Codebase_Service_API_FilteredCollection": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"$ref": "#/components/schemas/Codebase_Service_API_HalLink"}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, "Codebase_Service_API_ValidationError": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "Codebase_Service_API_Error": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, "Codebase_Service_API_UnauthorizedError": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "Codebase_Service_API_ForbiddenError": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "Codebase_Service_API_InternalServerError": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "Codebase_Service_API_NotFoundError": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "Codebase_Service_API_Message": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_HalItem"}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, "Codebase_Service_API_InvalidOperationError": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_Error"}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "Codebase_Service_API_SortedCollection": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_HalCollection"}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"$ref": "#/components/schemas/Codebase_Service_API_HalLink"}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"$ref": "#/components/schemas/Codebase_Service_API_HalLink"}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}}, "securitySchemes": {"Failover_Service_API_BearerAuth": {"type": "http", "scheme": "bearer", "bearerFormat": "JWT", "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'"}, "API_Specs_API_BearerAuth": {"type": "http", "scheme": "bearer", "bearerFormat": "JWT", "description": "Bearer token authentication using a JWT."}, "CDN_API_BearerAuth": {"type": "http", "scheme": "bearer", "bearerFormat": "JWT", "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'"}, "Environment_Service_API_BearerAuth": {"type": "http", "scheme": "bearer", "bearerFormat": "JWT", "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'"}, "SSH_Key_Service_API_BearerAuth": {"type": "http", "scheme": "bearer", "bearerFormat": "JWT", "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'"}, "Site_Service_API_BearerAuth": {"type": "http", "scheme": "bearer", "bearerFormat": "JWT", "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'"}, "Federated_Authentication_API_BearerAuth": {"type": "http", "scheme": "bearer", "bearerFormat": "JWT", "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'"}, "Codebase_Service_API_BearerAuth": {"type": "http", "scheme": "bearer", "bearerFormat": "JWT", "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'"}}}} \ No newline at end of file +{"openapi": "3.1.1", "info": {"title": "Acquia Cloud Platform API", "version": "3.0.0", "description": "The Cloud Platform API includes over 200 endpoints to enhance developer workflow, website management, and provisioning capabilities.", "license": {"name": "Acquia Terms of Service", "url": "https://www.acquia.com/acquia/agreement"}, "contact": {"name": "Acquia", "url": "https://www.acquia.com/contact"}}, "servers": [{"url": "https://api.acquia.com/v3"}], "tags": [{"name": "Failover Groups", "description": "Failover group management", "x-displayName": "Failover Groups"}, {"name": "Environments", "description": "Environment configuration and lifecycle", "x-displayName": "Environments"}, {"name": "OpenAPI Specs", "description": "Acquia Cloud Platform API specification", "x-displayName": "OpenAPI Specs"}, {"name": "CDNs", "description": "CDN domain management and cache purge operations", "x-displayName": "CDNs"}, {"name": "Site Instances", "description": "Site instance management", "x-displayName": "Site Instances"}, {"name": "Deployments", "description": "Deployment management", "x-displayName": "Deployments"}, {"name": "Code Deploys", "description": "Code deploy operations", "x-displayName": "Code Deploys"}, {"name": "Domains", "description": "Domain management", "x-displayName": "Domains"}, {"name": "Site Instance Databases", "description": "Site instance database, connection, and backup management", "x-displayName": "Site Instance Databases"}, {"name": "Domain Patterns", "description": "Automated domain pattern management", "x-displayName": "Domain Patterns"}, {"name": "SSH Keys", "description": "SSH key management for user accounts", "x-displayName": "SSH Keys"}, {"name": "Sites", "description": "Site management", "x-displayName": "Sites"}, {"name": "Identity Providers", "description": "Federated SSO identity provider management", "x-displayName": "Identity Providers"}, {"name": "Codebases", "description": "Codebase management", "x-displayName": "Codebases"}, {"name": "Codebase References", "description": "Codebase branch and tag references", "x-displayName": "Codebase References"}], "paths": {"/failover-groups": {"get": {"summary": "Retrieves a collection of failover groups.", "operationId": "getFailoverGroups", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "failover-groups:list"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Failover Groups"], "description": "Retrieves a collection of failover groups. Use the `filter` parameter to scope results by source environment.\n\nFilter syntax:\n- By source environment: `filter=environment_id:`\n", "parameters": [{"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "properties": {"id": {"type": "string", "description": "Unique identifier for the failover group.", "example": "b2c3d4e5-f6a7-8901-bcde-f12345678901"}, "name": {"type": "string", "description": "The name of the failover group.", "example": "Primary Failover Group"}, "status": {"type": "string", "enum": ["creating", "normal", "failed-over", "failing-over", "error", "deleting", "deleted"], "description": "The current status of the failover group.", "example": "normal"}, "pairs": {"type": "array", "description": "The list of failover pairs belonging to this failover group.", "items": {"type": "object", "properties": {"service_name": {"type": "string", "description": "The name of the service for this failover pair.", "example": "my-application-service"}, "primary_id": {"type": "string", "description": "The ID of the primary resource in the failover pair.", "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"}, "failover_id": {"type": "string", "description": "The UUID of the failover resource in the failover pair.", "example": "f1e2d3c4-b5a6-7890-fedc-ba9876543210"}}, "required": ["service_name", "primary_id", "failover_id"]}}}, "required": ["id", "name", "status", "pairs"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"failover_group_collection": {"summary": "Failover group collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/failover-groups?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/failover-groups?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/failover-groups?limit=2&offset=0{&filter}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", "name": "Primary Failover Group", "status": "normal", "pairs": [{"service_name": "my-application-service", "primary_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "failover_id": "f1e2d3c4-b5a6-7890-fedc-ba9876543210"}], "_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901"}}}]}}}}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Failover_Service_API_BearerAuth": []}]}, "post": {"summary": "Creates a new failover group.", "operationId": "createFailoverGroup", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "failover-groups:create"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Failover Groups"], "requestBody": {"description": "Create failover group request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"name": {"type": "string", "description": "The name of the failover group.", "example": "Primary Failover Group"}}, "required": ["name"], "additionalProperties": false}, "examples": {"create": {"summary": "Creates a new failover group", "description": "Creates a new failover group with the specified name", "value": {"name": "Primary Failover Group"}}}}}}, "responses": {"202": {"description": "Failover group creation initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Failover group creation has been initiated.", "description": "Confirmation message that the failover group creation has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901"}}, "message": "Failover group creation has been initiated."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Failover_Service_API_BearerAuth": []}]}}, "/failover-groups/{failoverGroupId}": {"get": {"summary": "Retrieves a failover group by ID.", "operationId": "findFailoverGroupByFailoverGroupId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "failover-groups:find"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Failover Groups"], "parameters": [{"name": "failoverGroupId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the failover group."}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "properties": {"id": {"type": "string", "description": "Unique identifier for the failover group.", "example": "b2c3d4e5-f6a7-8901-bcde-f12345678901"}, "name": {"type": "string", "description": "The name of the failover group.", "example": "Primary Failover Group"}, "status": {"type": "string", "enum": ["creating", "normal", "failed-over", "failing-over", "error", "deleting", "deleted"], "description": "The current status of the failover group.", "example": "normal"}, "pairs": {"type": "array", "description": "The list of failover pairs belonging to this failover group.", "items": {"type": "object", "properties": {"service_name": {"type": "string", "description": "The name of the service for this failover pair.", "example": "my-application-service"}, "primary_id": {"type": "string", "description": "The ID of the primary resource in the failover pair.", "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"}, "failover_id": {"type": "string", "description": "The UUID of the failover resource in the failover pair.", "example": "f1e2d3c4-b5a6-7890-fedc-ba9876543210"}}, "required": ["service_name", "primary_id", "failover_id"]}}}, "required": ["id", "name", "status", "pairs"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", "name": "Primary Failover Group", "status": "normal", "pairs": [{"service_name": "my-application-service", "primary_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "failover_id": "f1e2d3c4-b5a6-7890-fedc-ba9876543210"}], "_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901"}}}}}, "links": {"self": {"operationId": "findFailoverGroupByFailoverGroupId", "parameters": {"failoverGroupId": "$request.path.failoverGroupId"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Failover_Service_API_BearerAuth": []}]}, "delete": {"summary": "Deletes a failover group by ID.", "operationId": "deleteFailoverGroupByFailoverGroupId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "failover-groups:delete"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Failover Groups"], "parameters": [{"name": "failoverGroupId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the failover group."}], "responses": {"202": {"description": "Failover group deletion initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Failover group deletion has been initiated.", "description": "Confirmation message that the failover group deletion has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901"}}, "message": "Failover group deletion has been initiated."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Failover_Service_API_BearerAuth": []}]}}, "/failover-groups/{failoverGroupId}/actions/failover": {"post": {"summary": "Initiates failover for a failover group.", "operationId": "failoverFailoverGroupByFailoverGroupId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "failover-groups:failover"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Failover Groups"], "parameters": [{"name": "failoverGroupId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the failover group."}], "responses": {"202": {"description": "Failover group failover initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Failover group failover initiated.", "description": "Confirmation message that the failover group failover has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901"}}, "message": "Failover group failover initiated."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Failover_Service_API_BearerAuth": []}]}}, "/failover-groups/{failoverGroupId}/actions/revert-failover": {"post": {"summary": "Initiates a revert failover for a failover group.", "operationId": "revertFailoverFailoverGroupByFailoverGroupId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "failover-groups:revert-failover"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Failover Groups"], "parameters": [{"name": "failoverGroupId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the failover group."}], "responses": {"202": {"description": "Failover group revert failover initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Failover group revert failover initiated.", "description": "Confirmation message that the failover group revert failover has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901"}}, "message": "Failover group revert failover initiated."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Failover_Service_API_BearerAuth": []}]}}, "/failover-groups/{failoverGroupId}/actions/sync": {"post": {"summary": "Initiates a sync for a failover group.", "operationId": "syncFailoverGroupByFailoverGroupId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "failover-groups:sync"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Failover Groups"], "parameters": [{"name": "failoverGroupId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the failover group."}], "responses": {"202": {"description": "Failover group sync initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Failover group sync initiated.", "description": "Confirmation message that the failover group sync has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901"}}, "message": "Failover group sync initiated."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Failover_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/multi-region-failover": {"get": {"summary": "Retrieves the multi-region failover status for an environment.", "operationId": "findMultiRegionFailoverByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:find-multi-region-failover"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Environments"], "parameters": [{"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "properties": {"is_enabled": {"type": "boolean", "description": "Whether multi-region failover is enabled for the environment."}, "failover_group_id": {"type": "string", "description": "The identifier of the failover group associated with the environment."}, "is_traffic_failed_over": {"type": "boolean", "description": "Whether traffic has been failed over to the secondary region."}}, "required": ["is_enabled"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"is_enabled": true, "failover_group_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", "is_traffic_failed_over": false, "_links": {"self": {"href": "https://api.acquia.com/v3/environments/a1b2c3d4-e5f6-7890-abcd-ef1234567890/multi-region-failover"}}}}}, "links": {"self": {"operationId": "findMultiRegionFailoverByEnvironmentId", "parameters": {"environmentId": "$request.path.environmentId"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Failover_Service_API_BearerAuth": []}]}, "put": {"summary": "Enables multi-region failover for an environment.", "operationId": "saveMultiRegionFailoverByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:update-multi-region-failover"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Environments"], "parameters": [{"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "requestBody": {"description": "Multi-region failover enable request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"region": {"type": "string", "description": "The region to enable multi-region failover for.", "example": "us-east-1"}}, "required": ["region"], "additionalProperties": false, "minProperties": 1}, "examples": {"enable": {"summary": "Enables multi-region failover for a region", "description": "Enables multi-region failover for the specified region", "value": {"region": "us-east-1"}}}}}}, "responses": {"202": {"description": "Multi-region failover enable initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Multi-region failover enable has been initiated.", "description": "Confirmation message that multi-region failover enable has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/a1b2c3d4-e5f6-7890-abcd-ef1234567890/multi-region-failover"}}, "message": "Multi-region failover enable has been initiated."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Failover_Service_API_BearerAuth": []}]}, "delete": {"summary": "Disables multi-region failover for an environment.", "operationId": "deleteMultiRegionFailoverByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:delete-multi-region-failover"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "failover-service"}}, "tags": ["Environments"], "parameters": [{"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "responses": {"202": {"description": "Multi-region failover disable initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Multi-region failover disable has been initiated.", "description": "Confirmation message that multi-region failover disable has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/a1b2c3d4-e5f6-7890-abcd-ef1234567890/multi-region-failover"}}, "message": "Multi-region failover disable has been initiated."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Failover_Service_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/domains": {"get": {"operationId": "getDomainsBySubscriptionUuid", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:list-domains"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Retrieves a collection of CDN domains for a subscription", "description": "Retrieves a paginated list of CDN domains for the specified subscription.\n\n**Filtering:**\n - Format: `field=value` or `fieldvalue`\n - AND logic: semicolon (`;`) \u2014 `status=active;application_name=my-app`\n - OR logic: comma (`,`) \u2014 `status=active,status=pending`\n\n**Sorting:**\n- Format: Comma-delimited fields. Prefix with `-` for descending.\n- Example: `domain,-created_at`\n", "parameters": [{"name": "subscriptionUuid", "in": "path", "required": true, "description": "The unique identifier of the subscription.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}, {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "description": "CDN domain resource.", "properties": {"domain": {"type": "string", "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?(\\.[a-zA-Z]{2,})+$", "description": "The fully qualified domain name."}, "subscription_uuid": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "The unique identifier of the subscription the domain belongs to."}, "environment_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "The environment identifier associated with the domain."}, "application_name": {"type": "string", "description": "The name of the application associated with the domain."}, "status": {"type": "string", "description": "The current status of the domain.", "enum": ["connecting-to-edge", "domain-validation-pending", "ready-for-dns-repointing", "configuration-failed", "configured"]}, "ownership_validation_cname": {"type": "string", "description": "The CNAME record that must be created on the domain's DNS to validate ownership."}, "bandwidth_usage_tb": {"type": "number", "format": "float", "description": "The bandwidth usage for the domain in terabytes."}, "created_at": {"type": "string", "format": "date-time", "description": "The timestamp when the domain was created."}, "updated_at": {"type": "string", "format": "date-time", "description": "The timestamp when the domain was last updated."}}, "required": ["domain", "subscription_uuid", "environment_id", "status", "application_name", "ownership_validation_cname", "bandwidth_usage_tb", "created_at", "updated_at"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"domains_response": {"summary": "Domain collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=0{&sort}", "templated": true}, "next": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=2"}}, "count": 2, "total": 50, "pagination": {"total": 50, "limit": 2, "offset": 0}, "_embedded": {"items": [{"domain": "example.com", "subscription_uuid": "12345678-1234-1234-1234-123456789012", "environment_id": "0c3f0f5f-5727-4838-9459-2d90ee1cf7c1", "application_name": "my-application", "status": "configured", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-20T15:45:00Z", "ownership_validation_cname": "_acme-challenge.example.com", "bandwidth_usage_tb": 1.25, "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains/example.com"}}}, {"domain": "test.example.org", "subscription_uuid": "12345678-1234-1234-1234-123456789012", "environment_id": "1d4f1f6f-6838-5949-a560-3e01ff2cf8d2", "application_name": "test-application", "status": "connecting-to-edge", "created_at": "2024-01-18T08:15:00Z", "ownership_validation_cname": "_acme-challenge.example.com", "bandwidth_usage_tb": 1.25, "updated_at": "2024-01-18T08:15:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains/test.example.org"}}}]}}}}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/domains/{domainName}": {"get": {"summary": "Retrieves a domain by domain name.", "description": "Retrieves the full details of a CDN domain within a subscription, identified by its fully qualified domain name.", "operationId": "findDomainBySubscriptionUuidAndDomainName", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:find-domain"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "parameters": [{"name": "subscriptionUuid", "in": "path", "required": true, "description": "The unique identifier of the subscription.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, {"name": "domainName", "in": "path", "required": true, "description": "The fully qualified domain name.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?(\\.[a-zA-Z]{2,})+$"}}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "description": "CDN domain resource.", "properties": {"domain": {"type": "string", "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?(\\.[a-zA-Z]{2,})+$", "description": "The fully qualified domain name."}, "subscription_uuid": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "The unique identifier of the subscription the domain belongs to."}, "environment_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "The environment identifier associated with the domain."}, "application_name": {"type": "string", "description": "The name of the application associated with the domain."}, "status": {"type": "string", "description": "The current status of the domain.", "enum": ["connecting-to-edge", "domain-validation-pending", "ready-for-dns-repointing", "configuration-failed", "configured"]}, "ownership_validation_cname": {"type": "string", "description": "The CNAME record that must be created on the domain's DNS to validate ownership."}, "bandwidth_usage_tb": {"type": "number", "format": "float", "description": "The bandwidth usage for the domain in terabytes."}, "created_at": {"type": "string", "format": "date-time", "description": "The timestamp when the domain was created."}, "updated_at": {"type": "string", "format": "date-time", "description": "The timestamp when the domain was last updated."}}, "required": ["domain", "subscription_uuid", "environment_id", "status", "application_name", "ownership_validation_cname", "bandwidth_usage_tb", "created_at", "updated_at"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"domain": "example.com", "subscription_uuid": "12345678-1234-1234-1234-123456789012", "environment_id": "0c3f0f5f-5727-4838-9459-2d90ee1cf7c1", "application_name": "my-application", "status": "configured", "ownership_validation_cname": "_acme-challenge.example.com", "bandwidth_usage_tb": 1.25, "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-20T15:45:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains/example.com"}}}}}, "links": {"self": {"operationId": "findDomainBySubscriptionUuidAndDomainName", "parameters": {"subscriptionUuid": "$request.path.subscriptionUuid", "domainName": "$request.path.domainName"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/domains/{domainName}/actions/provision": {"post": {"operationId": "provisionDomainBySubscriptionUuidAndDomainName", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:provision-domain"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Provisions a domain for CDN services", "description": "Provisions a domain for CDN services within a subscription by associating it with an environment.", "parameters": [{"name": "subscriptionUuid", "in": "path", "required": true, "description": "The unique identifier of the subscription.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, {"name": "domainName", "in": "path", "required": true, "description": "The fully qualified domain name.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?(\\.[a-zA-Z]{2,})+$"}}], "requestBody": {"description": "Domain CDN provisioning request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"environment_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "The environment identifier that the domain will be associated with for purging purposes."}}, "additionalProperties": false, "required": ["environment_id"], "minProperties": 1}, "example": {"environment_id": "0c3f0f5f-5727-4838-9459-2d90ee1cf7c1"}}}}, "responses": {"202": {"description": "Accepted - Provisioning in progress", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The domain provisioning has been started.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains/example.com"}}, "message": "The domain provisioning has been started."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/domains/{domainName}/actions/deprovision": {"post": {"operationId": "deprovisionDomainBySubscriptionUuidAndDomainName", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:deprovision-domain"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Deprovisions a domain from CDN services", "description": "Deprovisions a domain for CDN services within a subscription.", "parameters": [{"name": "subscriptionUuid", "in": "path", "required": true, "description": "The unique identifier of the subscription.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, {"name": "domainName", "in": "path", "required": true, "description": "The fully qualified domain name.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?(\\.[a-zA-Z]{2,})+$"}}], "responses": {"202": {"description": "Accepted - Deprovisioning in progress", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The domain deprovisioning has been started.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains/example.com"}}, "message": "The domain deprovisioning has been started."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/environments/{environmentId}/actions/purge-cdn": {"post": {"operationId": "purgeCdnByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:purge-cdn"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Creates a CDN cache purge request", "description": "Creates a request to purge cached content from the CDN for the specified environment.\n\n**Resource Types** (specified in the request body):\n- `urls` - Purge specific URLs\n- `tags` - Purge by cache tags\n- `domains` - Purge entire domains\n- `everything` - Purge all content in the environment\n", "parameters": [{"name": "environmentId", "in": "path", "required": true, "description": "The unique identifier of the environment.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}], "requestBody": {"description": "Purge request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"resource_type": {"type": "string", "description": "The type of resource to purge.", "enum": ["tags", "urls", "domains", "everything"]}, "values": {"type": "array", "description": "List of values to purge based on the resource type.\nRequired when `resource_type` is not `everything`.\n", "items": {"type": "string"}, "minItems": 1}}, "additionalProperties": false, "required": ["resource_type"], "minProperties": 1}, "examples": {"purge_urls": {"summary": "Purge specific URLs", "value": {"resource_type": "urls", "values": ["https://example.com/page1", "https://example.com/page2"]}}, "purge_tags": {"summary": "Purge by cache tags", "value": {"resource_type": "tags", "values": ["product-123", "category-456"]}}, "purge_domains": {"summary": "Purge entire domains", "value": {"resource_type": "domains", "values": ["example.com", "test.example.org"]}}, "purge_everything": {"summary": "Purge everything", "value": {"resource_type": "everything"}}}}}}, "responses": {"202": {"description": "Accepted - Purge request submitted", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The purge request has been submitted.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/0c3f0f5f-5727-4838-9459-2d90ee1cf7c1/actions/purge-cdn"}}, "message": "The purge request has been submitted."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/config/security/rulesets": {"get": {"operationId": "getSecurityRuleSetsBySubscriptionUuid", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:list-security-rule-sets"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Retrieves a collection of security rulesets.", "description": "Retrieves security rulesets for a subscription.", "parameters": [{"name": "subscriptionUuid", "in": "path", "required": true, "description": "The unique identifier of the subscription.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "properties": {"id": {"type": "integer", "minimum": 1, "description": "The unique identifier of the security ruleset."}, "name": {"type": "string", "description": "The display name of the security ruleset."}, "is_enabled": {"type": "boolean", "description": "Indicates whether the security ruleset is enabled."}, "description": {"type": "string", "description": "The description of the security ruleset."}, "type": {"type": "string", "description": "The type of the security ruleset.", "enum": ["owasp", "acquia-managed"]}}, "required": ["id", "name", "is_enabled"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"security_rule_sets_response": {"summary": "Security rulesets collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rulesets?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rulesets?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rulesets?limit=2{&offset}", "templated": true}}, "count": 2, "total": 5, "pagination": {"total": 5, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": 123, "name": "OWASP Core Ruleset", "is_enabled": true, "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rulesets/123"}}}, {"id": 456, "name": "Bot Protection", "is_enabled": false, "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rulesets/456"}}}]}}}}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/config/security/rulesets/{ruleSetId}": {"get": {"operationId": "findSecurityRuleSetBySubscriptionUuidAndRuleSetId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:find-security-rule-set"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Retrieves a security ruleset.", "description": "Retrieves a security ruleset for a subscription.", "parameters": [{"name": "subscriptionUuid", "in": "path", "required": true, "description": "The unique identifier of the subscription.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, {"name": "ruleSetId", "in": "path", "required": true, "description": "The unique identifier of the security rule set.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "properties": {"id": {"type": "integer", "minimum": 1, "description": "The unique identifier of the security ruleset."}, "name": {"type": "string", "description": "The display name of the security ruleset."}, "is_enabled": {"type": "boolean", "description": "Indicates whether the security ruleset is enabled."}, "description": {"type": "string", "description": "The description of the security ruleset."}, "type": {"type": "string", "description": "The type of the security ruleset.", "enum": ["owasp", "acquia-managed"]}}, "required": ["id", "name", "is_enabled"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"id": 1, "name": "OWASP Top 10", "is_enabled": true, "description": "OWASP Top 10 security ruleset", "type": "owasp", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rulesets/1"}}}}}, "links": {"self": {"operationId": "findSecurityRuleSetBySubscriptionUuidAndRuleSetId", "parameters": {"subscriptionUuid": "$request.path.subscriptionUuid", "ruleSetId": "$request.path.ruleSetId"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"CDN_API_BearerAuth": []}]}, "put": {"operationId": "updateSecurityRuleSetBySubscriptionUuidAndRuleSetId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:update-security-rule-set"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Updates a security rulesets.", "description": "Updates a security rulesets for a subscription.", "parameters": [{"name": "subscriptionUuid", "in": "path", "required": true, "description": "The unique identifier of the subscription.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, {"name": "ruleSetId", "in": "path", "required": true, "description": "The unique identifier of the security rule set.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}], "requestBody": {"description": "Security ruleset update request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"is_enabled": {"type": "boolean", "description": "Indicates whether the security ruleset should be enabled."}}, "additionalProperties": false, "required": ["is_enabled"], "minProperties": 1}, "examples": {"enable": {"summary": "Enables a security ruleset", "value": {"is_enabled": true}}}}}}, "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The security ruleset has been updated.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rulesets/123"}}, "message": "The security ruleset has been updated."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/config/security/ip-rules": {"get": {"operationId": "getIpRulesBySubscriptionUuid", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:list-ip-rules"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Retrieves a collection of IP rules.", "description": "Retrieves IP rules for a subscription.", "parameters": [{"name": "subscriptionUuid", "in": "path", "required": true, "description": "The unique identifier of the subscription.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}, {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}, {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "properties": {"id": {"type": "integer", "minimum": 1, "description": "The unique identifier of the IP rule."}, "display_name": {"type": "string", "description": "The display name of the IP rule."}, "action": {"type": "string", "enum": ["block", "allow"], "description": "The action applied when the rule matches."}, "description": {"type": "string", "description": "The description of the IP rule."}, "ips": {"type": "array", "description": "The IPs or CIDR blocks associated with the rule.", "items": {"type": "string", "description": "An IP address or CIDR block."}}, "created_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was created."}, "updated_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was last updated."}}, "required": ["id", "display_name", "action", "ips", "created_at", "updated_at"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"ip_rules_response": {"summary": "IP rules collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules?limit=2&offset=0{&sort}", "templated": true}, "next": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules?offset=2&limit=2"}}, "count": 2, "total": 5, "pagination": {"total": 5, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": 101, "display_name": "Block office IPs", "action": "block", "description": "Blocks office IP ranges.", "ips": ["192.0.2.10", "198.51.100.0/24"], "created_at": "2026-05-01T12:00:00Z", "updated_at": "2026-05-10T09:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules/101"}}}, {"id": 102, "display_name": "Allow support", "action": "allow", "description": "Allows support traffic.", "ips": ["203.0.113.5"], "created_at": "2026-05-02T08:15:00Z", "updated_at": "2026-05-11T13:45:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules/102"}}}]}}}}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"CDN_API_BearerAuth": []}]}, "post": {"operationId": "createIpRuleBySubscriptionUuid", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:create-ip-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Creates an IP rule.", "description": "Creates an IP rule for a subscription.", "parameters": [{"name": "subscriptionUuid", "in": "path", "required": true, "description": "The unique identifier of the subscription.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}], "requestBody": {"description": "IP rule create request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"ips": {"type": "array", "description": "The IPs or CIDR blocks to include in the rule.", "items": {"type": "string", "description": "An IP address or CIDR block."}}, "action": {"type": "string", "enum": ["block", "allow"], "description": "The action applied when the rule matches."}, "display_name": {"type": "string", "description": "The display name of the IP rule."}, "description": {"type": "string", "description": "The description of the IP rule."}}, "additionalProperties": false, "required": ["ips", "action", "display_name"]}, "examples": {"create": {"summary": "Creates an IP rule", "value": {"ips": ["192.0.2.10", "198.51.100.0/24"], "action": "block", "display_name": "Block office IPs", "description": "Blocks office IP ranges."}}}}}}, "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The IP rule has been created.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules/101"}}, "message": "The IP rule has been created."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/config/security/ip-rules/{ipRuleId}": {"get": {"operationId": "findIpRuleBySubscriptionUuidAndIpRuleId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:find-ip-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Retrieves an IP rule.", "description": "Retrieves an IP rule for a subscription.", "parameters": [{"name": "subscriptionUuid", "in": "path", "required": true, "description": "The unique identifier of the subscription.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, {"name": "ipRuleId", "in": "path", "required": true, "description": "The unique identifier of the IP rule.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "properties": {"id": {"type": "integer", "minimum": 1, "description": "The unique identifier of the IP rule."}, "display_name": {"type": "string", "description": "The display name of the IP rule."}, "action": {"type": "string", "enum": ["block", "allow"], "description": "The action applied when the rule matches."}, "description": {"type": "string", "description": "The description of the IP rule."}, "ips": {"type": "array", "description": "The IPs or CIDR blocks associated with the rule.", "items": {"type": "string", "description": "An IP address or CIDR block."}}, "created_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was created."}, "updated_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was last updated."}}, "required": ["id", "display_name", "action", "ips", "created_at", "updated_at"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"id": 101, "display_name": "Block office VPN", "action": "allow", "description": "Allow traffic from the office VPN", "ips": ["203.0.113.0/24"], "created_at": "2026-05-01T12:00:00Z", "updated_at": "2026-05-10T09:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules/101"}}}}}, "links": {"self": {"operationId": "findIpRuleBySubscriptionUuidAndIpRuleId", "parameters": {"subscriptionUuid": "$request.path.subscriptionUuid", "ipRuleId": "$request.path.ipRuleId"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"CDN_API_BearerAuth": []}]}, "put": {"operationId": "updateIpRuleBySubscriptionUuidAndIpRuleId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:update-ip-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Updates an IP rule.", "description": "Updates an IP rule for a subscription.", "parameters": [{"name": "subscriptionUuid", "in": "path", "required": true, "description": "The unique identifier of the subscription.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, {"name": "ipRuleId", "in": "path", "required": true, "description": "The unique identifier of the IP rule.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}], "requestBody": {"description": "IP rule update request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"display_name": {"type": "string", "description": "The display name of the IP rule."}, "action": {"type": "string", "enum": ["block", "allow"], "description": "The action applied when the rule matches."}, "description": {"type": "string", "description": "The description of the IP rule."}, "ips": {"type": "array", "description": "The IPs or CIDR blocks associated with the rule.", "items": {"type": "string", "description": "An IP address or CIDR block."}}}, "additionalProperties": false, "minProperties": 1}, "examples": {"update": {"summary": "Updates an IP rule", "value": {"display_name": "Allow support", "action": "allow", "ips": ["203.0.113.5"]}}}}}}, "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The IP rule has been updated.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules/101"}}, "message": "The IP rule has been updated."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"CDN_API_BearerAuth": []}]}, "delete": {"operationId": "deleteIpRuleBySubscriptionUuidAndIpRuleId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:delete-ip-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Deletes an IP rule.", "description": "Deletes an IP rule for a subscription.", "parameters": [{"name": "subscriptionUuid", "in": "path", "required": true, "description": "The unique identifier of the subscription.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, {"name": "ipRuleId", "in": "path", "required": true, "description": "The unique identifier of the IP rule.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The IP rule has been deleted.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules/101"}}, "message": "The IP rule has been deleted."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/config/security/custom-rules": {"get": {"operationId": "getCustomRulesBySubscriptionUuid", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:list-custom-rules"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Retrieves a collection of custom security rules.", "description": "Retrieves custom security rules for a subscription.", "parameters": [{"name": "subscriptionUuid", "in": "path", "required": true, "description": "The unique identifier of the subscription.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "properties": {"id": {"type": "integer", "minimum": 1, "description": "The unique identifier of the custom security rule."}, "display_name": {"type": "string", "description": "The display name of the custom security rule."}, "action": {"type": "string", "enum": ["block", "allow", "alert"], "description": "The action applied when the rule matches."}, "priority": {"type": "integer", "minimum": 1, "description": "The priority order for the rule. Lower values are evaluated first.\nPriorities must be unique within a subscription \u2014 creating or\nupdating a rule with a priority already in use replaces the\nexisting rule at that priority.\n"}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "paths": {"type": "array", "description": "The paths the rule applies to.", "items": {"type": "string", "description": "A path pattern."}}, "mapped_domains_count": {"type": "integer", "description": "The number of domains the rule is mapped to."}, "targets": {"type": "array", "description": "Conditions that must match for the rule to fire.", "items": {"oneOf": [{"description": "Range match for IP or ASN ranges.", "type": "object", "required": ["attribute", "criteria", "value"], "additionalProperties": false, "properties": {"attribute": {"type": "string", "description": "The request attribute the rule inspects.", "enum": ["source-ip", "asn"]}, "criteria": {"type": "string", "description": "How `value` is compared against `attribute`.", "enum": ["range"]}, "value": {"type": "object", "description": "Range bounds for IP or ASN ranges.", "additionalProperties": false, "required": ["from", "to"], "properties": {"from": {"type": "string", "description": "The start of the range."}, "to": {"type": "string", "description": "The end of the range."}}}}}, {"description": "Value-list match for non-header, non-query attributes.", "type": "object", "required": ["attribute", "criteria", "value"], "additionalProperties": false, "properties": {"attribute": {"type": "string", "description": "The request attribute the rule inspects.", "enum": ["source-ip", "country", "method", "path", "asn"]}, "criteria": {"type": "string", "description": "How `value` is compared against `attribute`.", "enum": ["equals", "contains", "regex"]}, "value": {"type": "object", "description": "A list of candidate values combined with OR.", "additionalProperties": false, "required": ["values"], "properties": {"values": {"type": "array", "description": "The list of values.", "items": {"type": "string", "description": "A value."}}}}}}, {"description": "Key-value match for header or query-string attributes.", "type": "object", "required": ["attribute", "criteria", "value"], "additionalProperties": false, "properties": {"attribute": {"type": "string", "description": "The request attribute the rule inspects.", "enum": ["header", "query-string"]}, "criteria": {"type": "string", "description": "How `value` is compared against `attribute`.", "enum": ["equals", "contains", "regex"]}, "value": {"type": "object", "description": "Key-value matchers for header or query-string attributes.", "additionalProperties": false, "required": ["key_value_pairs"], "properties": {"key_value_pairs": {"type": "array", "description": "The list of key-value pairs.", "items": {"type": "object", "description": "A key-value pair.", "required": ["key", "value"], "properties": {"key": {"type": "string", "description": "The header or query-parameter name."}, "value": {"type": "string", "description": "The expected value."}}}}}}}}]}}, "created_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was created."}, "updated_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was last updated."}}, "required": ["id", "display_name", "action", "priority", "domains", "paths", "created_at", "updated_at", "targets"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"custom_rules_response": {"summary": "Custom rules collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules?limit=2{&offset}", "templated": true}}, "count": 2, "total": 5, "pagination": {"total": 5, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": 301, "display_name": "Block bad bots", "action": "block", "priority": 1, "domains": ["example.com"], "paths": ["/api/*"], "targets": [{"attribute": "source-ip", "criteria": "range", "value": {"from": "10.0.0.0", "to": "10.0.0.255"}}], "created_at": "2026-05-01T12:00:00Z", "updated_at": "2026-05-10T09:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules/301"}}}, {"id": 302, "display_name": "Alert login scans", "action": "alert", "priority": 2, "domains": ["shop.example.com"], "paths": ["/login"], "targets": [{"attribute": "path", "criteria": "equals", "value": {"values": ["/login"]}}], "created_at": "2026-05-02T08:15:00Z", "updated_at": "2026-05-11T13:45:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules/302"}}}]}}}}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"CDN_API_BearerAuth": []}]}, "post": {"operationId": "createCustomRuleBySubscriptionUuid", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:create-custom-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Creates a custom security rule.", "description": "Creates a custom security rule for a subscription.", "parameters": [{"name": "subscriptionUuid", "in": "path", "required": true, "description": "The unique identifier of the subscription.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}], "requestBody": {"description": "Custom security rule create request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"display_name": {"type": "string", "description": "The display name of the custom security rule."}, "action": {"type": "string", "enum": ["block", "allow", "alert"], "description": "The action applied when the rule matches."}, "priority": {"type": "integer", "minimum": 1, "description": "The priority order for the rule."}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "paths": {"type": "array", "description": "The paths the rule applies to.", "items": {"type": "string", "description": "A path pattern."}}}, "additionalProperties": false, "required": ["display_name", "action", "domains", "paths"], "minProperties": 1}, "examples": {"create": {"summary": "Creates a custom security rule", "value": {"display_name": "Block bad bots", "action": "block", "priority": 1, "domains": ["example.com"], "paths": ["/api/*"]}}}}}}, "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The custom security rule has been created.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules/301"}}, "message": "The custom security rule has been created."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/config/security/custom-rules/{customRuleId}": {"get": {"operationId": "findCustomRuleBySubscriptionUuidAndCustomRuleId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:find-custom-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Retrieves a custom security rule.", "description": "Retrieves a custom security rule for a subscription.", "parameters": [{"name": "subscriptionUuid", "in": "path", "required": true, "description": "The unique identifier of the subscription.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, {"name": "customRuleId", "in": "path", "required": true, "description": "The unique identifier of the custom security rule.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "properties": {"id": {"type": "integer", "minimum": 1, "description": "The unique identifier of the custom security rule."}, "display_name": {"type": "string", "description": "The display name of the custom security rule."}, "action": {"type": "string", "enum": ["block", "allow", "alert"], "description": "The action applied when the rule matches."}, "priority": {"type": "integer", "minimum": 1, "description": "The priority order for the rule. Lower values are evaluated first.\nPriorities must be unique within a subscription \u2014 creating or\nupdating a rule with a priority already in use replaces the\nexisting rule at that priority.\n"}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "paths": {"type": "array", "description": "The paths the rule applies to.", "items": {"type": "string", "description": "A path pattern."}}, "mapped_domains_count": {"type": "integer", "description": "The number of domains the rule is mapped to."}, "targets": {"type": "array", "description": "Conditions that must match for the rule to fire.", "items": {"oneOf": [{"description": "Range match for IP or ASN ranges.", "type": "object", "required": ["attribute", "criteria", "value"], "additionalProperties": false, "properties": {"attribute": {"type": "string", "description": "The request attribute the rule inspects.", "enum": ["source-ip", "asn"]}, "criteria": {"type": "string", "description": "How `value` is compared against `attribute`.", "enum": ["range"]}, "value": {"type": "object", "description": "Range bounds for IP or ASN ranges.", "additionalProperties": false, "required": ["from", "to"], "properties": {"from": {"type": "string", "description": "The start of the range."}, "to": {"type": "string", "description": "The end of the range."}}}}}, {"description": "Value-list match for non-header, non-query attributes.", "type": "object", "required": ["attribute", "criteria", "value"], "additionalProperties": false, "properties": {"attribute": {"type": "string", "description": "The request attribute the rule inspects.", "enum": ["source-ip", "country", "method", "path", "asn"]}, "criteria": {"type": "string", "description": "How `value` is compared against `attribute`.", "enum": ["equals", "contains", "regex"]}, "value": {"type": "object", "description": "A list of candidate values combined with OR.", "additionalProperties": false, "required": ["values"], "properties": {"values": {"type": "array", "description": "The list of values.", "items": {"type": "string", "description": "A value."}}}}}}, {"description": "Key-value match for header or query-string attributes.", "type": "object", "required": ["attribute", "criteria", "value"], "additionalProperties": false, "properties": {"attribute": {"type": "string", "description": "The request attribute the rule inspects.", "enum": ["header", "query-string"]}, "criteria": {"type": "string", "description": "How `value` is compared against `attribute`.", "enum": ["equals", "contains", "regex"]}, "value": {"type": "object", "description": "Key-value matchers for header or query-string attributes.", "additionalProperties": false, "required": ["key_value_pairs"], "properties": {"key_value_pairs": {"type": "array", "description": "The list of key-value pairs.", "items": {"type": "object", "description": "A key-value pair.", "required": ["key", "value"], "properties": {"key": {"type": "string", "description": "The header or query-parameter name."}, "value": {"type": "string", "description": "The expected value."}}}}}}}}]}}, "created_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was created."}, "updated_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was last updated."}}, "required": ["id", "display_name", "action", "priority", "domains", "paths", "created_at", "updated_at", "targets"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"id": 301, "display_name": "Block bad bots", "action": "block", "priority": 1, "domains": ["example.com"], "paths": ["/api/*"], "targets": [{"attribute": "source-ip", "criteria": "range", "value": {"from": "10.0.0.0", "to": "10.0.0.255"}}, {"attribute": "header", "criteria": "equals", "value": {"key_value_pairs": [{"key": "User-Agent", "value": "BadBot/1.0"}]}}], "created_at": "2026-05-01T12:00:00Z", "updated_at": "2026-05-10T09:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules/301"}}}}}, "links": {"self": {"operationId": "findCustomRuleBySubscriptionUuidAndCustomRuleId", "parameters": {"subscriptionUuid": "$request.path.subscriptionUuid", "customRuleId": "$request.path.customRuleId"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"CDN_API_BearerAuth": []}]}, "put": {"operationId": "updateCustomRuleBySubscriptionUuidAndCustomRuleId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:update-custom-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Updates a custom security rule.", "description": "Updates a custom security rule for a subscription.", "parameters": [{"name": "subscriptionUuid", "in": "path", "required": true, "description": "The unique identifier of the subscription.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, {"name": "customRuleId", "in": "path", "required": true, "description": "The unique identifier of the custom security rule.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}], "requestBody": {"description": "Custom security rule update request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"display_name": {"type": "string", "description": "The display name of the custom security rule."}, "action": {"type": "string", "enum": ["block", "allow", "alert"], "description": "The action applied when the rule matches."}, "priority": {"type": "integer", "minimum": 1, "description": "The priority order for the rule."}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "paths": {"type": "array", "description": "The paths the rule applies to.", "items": {"type": "string", "description": "A path pattern."}}}, "additionalProperties": false, "minProperties": 1}, "examples": {"update": {"summary": "Updates a custom security rule", "value": {"display_name": "Alert login scans", "action": "alert", "priority": 2, "domains": ["shop.example.com"], "paths": ["/login"]}}}}}}, "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The custom security rule has been updated.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules/301"}}, "message": "The custom security rule has been updated."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"CDN_API_BearerAuth": []}]}, "delete": {"operationId": "deleteCustomRuleBySubscriptionUuidAndCustomRuleId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:delete-custom-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Deletes a custom security rule.", "description": "Deletes a custom security rule for a subscription.", "parameters": [{"name": "subscriptionUuid", "in": "path", "required": true, "description": "The unique identifier of the subscription.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, {"name": "customRuleId", "in": "path", "required": true, "description": "The unique identifier of the custom security rule.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The custom security rule has been deleted.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules/301"}}, "message": "The custom security rule has been deleted."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/config/security/rate-limiting-rules": {"get": {"operationId": "getRateLimitingRulesBySubscriptionUuid", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:list-rate-limiting-rules"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Retrieves a collection of rate limiting rules.", "description": "Retrieves rate limiting rules for a subscription.", "parameters": [{"name": "subscriptionUuid", "in": "path", "required": true, "description": "The unique identifier of the subscription.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}, {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}, {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "properties": {"id": {"type": "integer", "minimum": 1, "description": "The unique identifier of the rate limiting rule."}, "display_name": {"type": "string", "description": "The display name of the rate limiting rule."}, "action": {"type": "string", "enum": ["block", "alert"], "description": "The action applied when the rule matches."}, "rate_limit_per_minute": {"type": "string", "enum": ["lenient", "moderate", "strict"], "description": "The rate limit category applied to the rule."}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "created_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was created."}, "updated_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was last updated."}}, "required": ["id", "display_name", "action", "rate_limit_per_minute", "domains", "created_at", "updated_at"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"rate_limiting_rules_response": {"summary": "Rate limiting rules collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules?limit=2&offset=0{&sort}", "templated": true}, "next": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules?limit=2&offset=2"}}, "count": 2, "total": 4, "pagination": {"total": 4, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": 501, "display_name": "Rate Rule 1", "action": "alert", "rate_limit_per_minute": "lenient", "domains": ["example.com"], "created_at": "2026-05-01T12:00:00Z", "updated_at": "2026-05-10T09:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules/501"}}}, {"id": 502, "display_name": "Rate Rule 2", "action": "block", "rate_limit_per_minute": "strict", "domains": ["shop.example.com"], "created_at": "2026-05-02T08:15:00Z", "updated_at": "2026-05-11T13:45:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules/502"}}}]}}}}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"CDN_API_BearerAuth": []}]}, "post": {"operationId": "createRateLimitingRuleBySubscriptionUuid", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:create-rate-limiting-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Creates a rate limiting rule.", "description": "Creates a rate limiting rule for a subscription.", "parameters": [{"name": "subscriptionUuid", "in": "path", "required": true, "description": "The unique identifier of the subscription.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}], "requestBody": {"description": "Rate limiting rule create request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"display_name": {"type": "string", "description": "The display name of the rate limiting rule."}, "action": {"type": "string", "enum": ["block", "alert"], "description": "The action applied when the rule matches."}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "rate_limit_per_minute": {"type": "string", "enum": ["lenient", "moderate", "strict"], "description": "The rate limit category applied to the rule."}}, "additionalProperties": false, "required": ["display_name", "action", "rate_limit_per_minute"], "minProperties": 1}, "examples": {"create": {"summary": "Creates a rate limiting rule", "value": {"display_name": "Rate Rule 1", "action": "alert", "rate_limit_per_minute": "lenient", "domains": ["example.com"]}}}}}}, "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The rate limiting rule has been created.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules/501"}}, "message": "The rate limiting rule has been created."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionUuid}/config/security/rate-limiting-rules/{rateLimitingRuleId}": {"get": {"operationId": "findRateLimitingRuleBySubscriptionUuidAndRateLimitingRuleId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:find-rate-limiting-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Retrieves a rate limiting rule.", "description": "Retrieves a rate limiting rule for a subscription.", "parameters": [{"name": "subscriptionUuid", "in": "path", "required": true, "description": "The unique identifier of the subscription.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, {"name": "rateLimitingRuleId", "in": "path", "required": true, "description": "The unique identifier of the rate limiting rule.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "properties": {"id": {"type": "integer", "minimum": 1, "description": "The unique identifier of the rate limiting rule."}, "display_name": {"type": "string", "description": "The display name of the rate limiting rule."}, "action": {"type": "string", "enum": ["block", "alert"], "description": "The action applied when the rule matches."}, "rate_limit_per_minute": {"type": "string", "enum": ["lenient", "moderate", "strict"], "description": "The rate limit category applied to the rule."}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "created_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was created."}, "updated_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was last updated."}}, "required": ["id", "display_name", "action", "rate_limit_per_minute", "domains", "created_at", "updated_at"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"id": 501, "display_name": "Rate Rule 1", "action": "alert", "rate_limit_per_minute": "lenient", "domains": ["example.com"], "created_at": "2026-05-01T12:00:00Z", "updated_at": "2026-05-10T09:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules/501"}}}}}, "links": {"self": {"operationId": "findRateLimitingRuleBySubscriptionUuidAndRateLimitingRuleId", "parameters": {"subscriptionUuid": "$request.path.subscriptionUuid", "rateLimitingRuleId": "$request.path.rateLimitingRuleId"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"CDN_API_BearerAuth": []}]}, "put": {"operationId": "updateRateLimitingRuleBySubscriptionUuidAndRateLimitingRuleId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:update-rate-limiting-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Updates a rate limiting rule.", "description": "Updates a rate limiting rule for a subscription.", "parameters": [{"name": "subscriptionUuid", "in": "path", "required": true, "description": "The unique identifier of the subscription.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, {"name": "rateLimitingRuleId", "in": "path", "required": true, "description": "The unique identifier of the rate limiting rule.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}], "requestBody": {"description": "Rate limiting rule update request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"display_name": {"type": "string", "description": "The display name of the rate limiting rule."}, "action": {"type": "string", "enum": ["block", "alert"], "description": "The action applied when the rule matches."}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "rate_limit_per_minute": {"type": "string", "enum": ["lenient", "moderate", "strict"], "description": "The rate limit category applied to the rule."}}, "additionalProperties": false, "minProperties": 1}, "examples": {"update": {"summary": "Updates a rate limiting rule", "value": {"display_name": "Rate Rule 2", "action": "block", "rate_limit_per_minute": "strict", "domains": ["shop.example.com"]}}}}}}, "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The rate limiting rule has been updated.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules/501"}}, "message": "The rate limiting rule has been updated."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"CDN_API_BearerAuth": []}]}, "delete": {"operationId": "deleteRateLimitingRuleBySubscriptionUuidAndRateLimitingRuleId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:delete-rate-limiting-rule"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "cdn-service"}}, "tags": ["CDNs"], "summary": "Deletes a rate limiting rule.", "description": "Deletes a rate limiting rule for a subscription.", "parameters": [{"name": "subscriptionUuid", "in": "path", "required": true, "description": "The unique identifier of the subscription.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, {"name": "rateLimitingRuleId", "in": "path", "required": true, "description": "The unique identifier of the rate limiting rule.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The rate limiting rule has been deleted.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules/501"}}, "message": "The rate limiting rule has been deleted."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"CDN_API_BearerAuth": []}]}}, "/codebases/{codebaseId}/environments": {"get": {"summary": "Retrieves a collection of environments for the specified codebase.", "operationId": "getEnvironmentsByCodebaseId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:list-environments"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"name": "codebaseId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Codebase identifier"}, {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}], "responses": {"200": {"description": "Environment collection", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "description": "Environment properties", "properties": {"id": {"type": "string", "description": "The unique identifier of the environment", "pattern": "^[a-zA-Z0-9-]+$"}, "name": {"type": "string", "description": "The machine name of the environment"}, "label": {"type": "string", "description": "The human-readable label of the environment"}, "description": {"type": "string", "description": "A description of the environment"}, "status": {"type": "string", "description": "The current status of the environment", "enum": ["normal", "allocated", "launching", "killed", "cancelled", "stopped"]}, "flags": {"type": "object", "description": "Environment configuration flags", "additionalProperties": {"type": "boolean"}}, "properties": {"type": "object", "description": "Environment PHP and server properties", "properties": {"version": {"type": "string", "description": "PHP version"}, "max_execution_time": {"type": "integer", "description": "Maximum execution time in seconds"}, "memory_limit": {"type": "integer", "description": "Memory limit in MB"}, "apcu": {"type": "integer", "description": "APCu cache size in MB"}, "client_max_body_size": {"type": "integer", "description": "Maximum client body size in MB"}, "max_input_vars": {"type": "integer", "description": "Maximum number of input variables"}, "max_post_size": {"type": "integer", "description": "Maximum POST size in MB"}, "memcached_limit": {"type": "integer", "description": "Memcached limit in MB"}, "upload_max_filesize": {"type": "integer", "description": "Maximum upload file size in MB"}, "operating_system": {"type": "string", "description": "Operating system codename"}}}, "reference": {"type": "string", "description": "The code reference (branch, tag, or commit) deployed to this environment"}, "code_switch_status": {"type": "string", "description": "The status of the Switch Code action", "enum": ["IDLE", "IN_PROGRESS"]}, "ssh_url": {"type": "string", "format": "uri", "description": "The SSH connection string for accessing this environment"}}, "required": ["id", "name", "label", "status", "flags", "properties", "reference", "code_switch_status", "ssh_url"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2&offset=0{&filter}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", "name": "dev", "label": "Dev", "description": "Development environment", "status": "normal", "reference": "branch/main", "code_switch_status": "IDLE", "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", "flags": {"production": false, "protection_mode": false}, "properties": {"version": "8.3"}, "_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc"}}}]}}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/codebases/{codebaseId}/environments/{environmentId}": {"get": {"summary": "Retrieves details for an environment by codebase and environment ID.", "operationId": "findEnvironmentByCodebaseIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:find-environment"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"name": "codebaseId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Codebase identifier"}, {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "responses": {"200": {"description": "Environment details", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "description": "Environment properties", "properties": {"id": {"type": "string", "description": "The unique identifier of the environment", "pattern": "^[a-zA-Z0-9-]+$"}, "name": {"type": "string", "description": "The machine name of the environment"}, "label": {"type": "string", "description": "The human-readable label of the environment"}, "description": {"type": "string", "description": "A description of the environment"}, "status": {"type": "string", "description": "The current status of the environment", "enum": ["normal", "allocated", "launching", "killed", "cancelled", "stopped"]}, "flags": {"type": "object", "description": "Environment configuration flags", "additionalProperties": {"type": "boolean"}}, "properties": {"type": "object", "description": "Environment PHP and server properties", "properties": {"version": {"type": "string", "description": "PHP version"}, "max_execution_time": {"type": "integer", "description": "Maximum execution time in seconds"}, "memory_limit": {"type": "integer", "description": "Memory limit in MB"}, "apcu": {"type": "integer", "description": "APCu cache size in MB"}, "client_max_body_size": {"type": "integer", "description": "Maximum client body size in MB"}, "max_input_vars": {"type": "integer", "description": "Maximum number of input variables"}, "max_post_size": {"type": "integer", "description": "Maximum POST size in MB"}, "memcached_limit": {"type": "integer", "description": "Memcached limit in MB"}, "upload_max_filesize": {"type": "integer", "description": "Maximum upload file size in MB"}, "operating_system": {"type": "string", "description": "Operating system codename"}}}, "reference": {"type": "string", "description": "The code reference (branch, tag, or commit) deployed to this environment"}, "code_switch_status": {"type": "string", "description": "The status of the Switch Code action", "enum": ["IDLE", "IN_PROGRESS"]}, "ssh_url": {"type": "string", "format": "uri", "description": "The SSH connection string for accessing this environment"}}, "required": ["id", "name", "label", "status", "flags", "properties", "reference", "code_switch_status", "ssh_url"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"codebase": {"allOf": [{"type": "object", "description": "Embedded codebase resource", "properties": {"id": {"type": "string", "description": "The unique identifier of the codebase"}}, "required": ["id"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc"}, "codebase": {"href": "https://api.acquia.com/v3/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323"}}, "id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", "name": "environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc", "label": "Environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc", "description": "Description of 3e8ecbec-ea7c-4260-8414-ef2938c859bc", "status": "normal", "flags": {"production": false, "protection_mode": false}, "properties": {"version": "8.3", "max_execution_time": 10, "memory_limit": 192, "apcu": 32, "client_max_body_size": 192, "max_input_vars": 1000, "max_post_size": 256, "memcached_limit": 128, "upload_max_filesize": 192, "operating_system": "focal"}, "reference": "tag/v3.1", "code_switch_status": "IDLE", "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", "_embedded": {"codebase": {"id": "d3f7270e-c45f-4801-9308-5e8afe84a323", "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323"}}}}}}}, "links": {"self": {"operationId": "findEnvironmentByEnvironmentId", "parameters": {"environmentId": "$request.path.environmentId"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/sites/{siteId}/environments": {"get": {"summary": "Retrieves a collection of environments for the specified site.", "operationId": "getEnvironmentsBySiteId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sites:list-environments"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the site."}, {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}], "responses": {"200": {"description": "Environment collection", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "description": "Environment properties", "properties": {"id": {"type": "string", "description": "The unique identifier of the environment", "pattern": "^[a-zA-Z0-9-]+$"}, "name": {"type": "string", "description": "The machine name of the environment"}, "label": {"type": "string", "description": "The human-readable label of the environment"}, "description": {"type": "string", "description": "A description of the environment"}, "status": {"type": "string", "description": "The current status of the environment", "enum": ["normal", "allocated", "launching", "killed", "cancelled", "stopped"]}, "flags": {"type": "object", "description": "Environment configuration flags", "additionalProperties": {"type": "boolean"}}, "properties": {"type": "object", "description": "Environment PHP and server properties", "properties": {"version": {"type": "string", "description": "PHP version"}, "max_execution_time": {"type": "integer", "description": "Maximum execution time in seconds"}, "memory_limit": {"type": "integer", "description": "Memory limit in MB"}, "apcu": {"type": "integer", "description": "APCu cache size in MB"}, "client_max_body_size": {"type": "integer", "description": "Maximum client body size in MB"}, "max_input_vars": {"type": "integer", "description": "Maximum number of input variables"}, "max_post_size": {"type": "integer", "description": "Maximum POST size in MB"}, "memcached_limit": {"type": "integer", "description": "Memcached limit in MB"}, "upload_max_filesize": {"type": "integer", "description": "Maximum upload file size in MB"}, "operating_system": {"type": "string", "description": "Operating system codename"}}}, "reference": {"type": "string", "description": "The code reference (branch, tag, or commit) deployed to this environment"}, "code_switch_status": {"type": "string", "description": "The status of the Switch Code action", "enum": ["IDLE", "IN_PROGRESS"]}, "ssh_url": {"type": "string", "format": "uri", "description": "The SSH connection string for accessing this environment"}}, "required": ["id", "name", "label", "status", "flags", "properties", "reference", "code_switch_status", "ssh_url"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2{&offset}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", "name": "dev", "label": "Dev", "description": "Development environment", "status": "normal", "reference": "branch/main", "code_switch_status": "IDLE", "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", "flags": {"production": false, "protection_mode": false}, "properties": {"version": "8.3"}, "_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc"}}}]}}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/private-networks/{privateNetworkId}/environments": {"get": {"summary": "Retrieves a collection of environments associated with the specified private network.", "operationId": "getEnvironmentsByPrivateNetworkId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "private-networks:list-environments"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"name": "privateNetworkId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Private network identifier"}, {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}], "responses": {"200": {"description": "Environment collection", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "description": "Environment properties", "properties": {"id": {"type": "string", "description": "The unique identifier of the environment", "pattern": "^[a-zA-Z0-9-]+$"}, "name": {"type": "string", "description": "The machine name of the environment"}, "label": {"type": "string", "description": "The human-readable label of the environment"}, "description": {"type": "string", "description": "A description of the environment"}, "status": {"type": "string", "description": "The current status of the environment", "enum": ["normal", "allocated", "launching", "killed", "cancelled", "stopped"]}, "flags": {"type": "object", "description": "Environment configuration flags", "additionalProperties": {"type": "boolean"}}, "properties": {"type": "object", "description": "Environment PHP and server properties", "properties": {"version": {"type": "string", "description": "PHP version"}, "max_execution_time": {"type": "integer", "description": "Maximum execution time in seconds"}, "memory_limit": {"type": "integer", "description": "Memory limit in MB"}, "apcu": {"type": "integer", "description": "APCu cache size in MB"}, "client_max_body_size": {"type": "integer", "description": "Maximum client body size in MB"}, "max_input_vars": {"type": "integer", "description": "Maximum number of input variables"}, "max_post_size": {"type": "integer", "description": "Maximum POST size in MB"}, "memcached_limit": {"type": "integer", "description": "Memcached limit in MB"}, "upload_max_filesize": {"type": "integer", "description": "Maximum upload file size in MB"}, "operating_system": {"type": "string", "description": "Operating system codename"}}}, "reference": {"type": "string", "description": "The code reference (branch, tag, or commit) deployed to this environment"}, "code_switch_status": {"type": "string", "description": "The status of the Switch Code action", "enum": ["IDLE", "IN_PROGRESS"]}, "ssh_url": {"type": "string", "format": "uri", "description": "The SSH connection string for accessing this environment"}}, "required": ["id", "name", "label", "status", "flags", "properties", "reference", "code_switch_status", "ssh_url"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2{&offset}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", "name": "dev", "label": "Dev", "description": "Development environment", "status": "normal", "reference": "branch/main", "code_switch_status": "IDLE", "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", "flags": {"production": false, "protection_mode": false}, "properties": {"version": "8.3"}, "_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc"}}}]}}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}": {"get": {"summary": "Get environment details.", "operationId": "findEnvironmentByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:find"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "responses": {"200": {"description": "Environment details", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "description": "Environment properties", "properties": {"id": {"type": "string", "description": "The unique identifier of the environment", "pattern": "^[a-zA-Z0-9-]+$"}, "name": {"type": "string", "description": "The machine name of the environment"}, "label": {"type": "string", "description": "The human-readable label of the environment"}, "description": {"type": "string", "description": "A description of the environment"}, "status": {"type": "string", "description": "The current status of the environment", "enum": ["normal", "allocated", "launching", "killed", "cancelled", "stopped"]}, "flags": {"type": "object", "description": "Environment configuration flags", "additionalProperties": {"type": "boolean"}}, "properties": {"type": "object", "description": "Environment PHP and server properties", "properties": {"version": {"type": "string", "description": "PHP version"}, "max_execution_time": {"type": "integer", "description": "Maximum execution time in seconds"}, "memory_limit": {"type": "integer", "description": "Memory limit in MB"}, "apcu": {"type": "integer", "description": "APCu cache size in MB"}, "client_max_body_size": {"type": "integer", "description": "Maximum client body size in MB"}, "max_input_vars": {"type": "integer", "description": "Maximum number of input variables"}, "max_post_size": {"type": "integer", "description": "Maximum POST size in MB"}, "memcached_limit": {"type": "integer", "description": "Memcached limit in MB"}, "upload_max_filesize": {"type": "integer", "description": "Maximum upload file size in MB"}, "operating_system": {"type": "string", "description": "Operating system codename"}}}, "reference": {"type": "string", "description": "The code reference (branch, tag, or commit) deployed to this environment"}, "code_switch_status": {"type": "string", "description": "The status of the Switch Code action", "enum": ["IDLE", "IN_PROGRESS"]}, "ssh_url": {"type": "string", "format": "uri", "description": "The SSH connection string for accessing this environment"}}, "required": ["id", "name", "label", "status", "flags", "properties", "reference", "code_switch_status", "ssh_url"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"codebase": {"allOf": [{"type": "object", "description": "Embedded codebase resource", "properties": {"id": {"type": "string", "description": "The unique identifier of the codebase"}}, "required": ["id"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc"}, "codebase": {"href": "https://api.acquia.com/v3/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323"}}, "id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", "name": "environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc", "label": "Environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc", "description": "Description of 3e8ecbec-ea7c-4260-8414-ef2938c859bc", "status": "normal", "flags": {"production": false, "protection_mode": false}, "properties": {"version": "8.3", "max_execution_time": 10, "memory_limit": 192, "apcu": 32, "client_max_body_size": 192, "max_input_vars": 1000, "max_post_size": 256, "memcached_limit": 128, "upload_max_filesize": 192, "operating_system": "focal"}, "reference": "tag/v3.1", "code_switch_status": "IDLE", "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", "_embedded": {"codebase": {"id": "d3f7270e-c45f-4801-9308-5e8afe84a323", "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323"}}}}}}}, "links": {"self": {"operationId": "findEnvironmentByEnvironmentId", "parameters": {"environmentId": "$request.path.environmentId"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "put": {"summary": "Modifies properties settings for the specified environment.", "operationId": "updateEnvironmentByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:update"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "requestBody": {"description": "Update environment request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"label": {"type": "string", "minLength": 1, "maxLength": 128, "description": "Human-readable label for the environment."}, "description": {"type": "string", "minLength": 1, "maxLength": 512, "description": "Description for the environment."}, "properties": {"type": "object", "description": "PHP and server configuration properties for the environment.", "properties": {"version": {"type": "string", "description": "PHP version (e.g. \"8.3\")."}, "apcu": {"type": "integer", "description": "APCu memory limit in MB."}, "max_execution_time": {"type": "integer", "description": "PHP max execution time in seconds."}, "memory_limit": {"type": "integer", "description": "PHP memory limit in MB."}, "opcache": {"type": "integer", "description": "OPcache memory limit in MB."}, "interned_strings_buffer": {"type": "integer", "description": "OPcache interned strings buffer in MB."}, "client_max_body_size": {"type": "integer", "description": "Nginx client_max_body_size in MB."}, "upload_max_filesize": {"type": "integer", "description": "PHP upload_max_filesize in MB."}, "max_post_size": {"type": "integer", "description": "PHP post_max_size in MB."}, "max_input_vars": {"type": "integer", "description": "PHP max_input_vars."}, "memcached_limit": {"type": "integer", "description": "Memcached memory limit in MB."}, "operating_system": {"type": "string", "description": "Operating system (e.g. \"focal\")."}, "sendmail_path": {"type": "string", "description": "Sendmail path configuration."}}}}, "additionalProperties": false, "minProperties": 1}, "examples": {"update_label": {"summary": "Update environment label", "value": {"label": "Staging", "description": "Staging environment"}}, "update_properties": {"summary": "Update PHP properties", "value": {"properties": {"version": "8.3", "memory_limit": 256}}}}}}}, "responses": {"202": {"description": "Environment update started", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Environment update started.", "description": "Confirmation message that the environment update has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc"}}, "message": "Environment update started."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/actions/enable-protection-mode": {"post": {"summary": "Enable Environment Protection mode.", "operationId": "enableEnvironmentProtectionModeByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:enable-protection-mode"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "responses": {"202": {"description": "Enable protection mode initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Environment protection mode enabled.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323"}}, "message": "Environment protection mode enabled."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/actions/disable-protection-mode": {"post": {"summary": "Disable Environment Protection mode.", "operationId": "disableEnvironmentProtectionModeByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:disable-protection-mode"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "responses": {"202": {"description": "Disable protection mode initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Environment protection mode disabled.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323"}}, "message": "Environment protection mode disabled."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/actions/clear-caches": {"post": {"summary": "Clears caches for the specified environment.", "operationId": "clearEnvironmentCachesByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:clear-caches"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "requestBody": {"description": "Clear caches request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"domains": {"type": "array", "description": "List of domain names to clear caches for.", "minItems": 1, "items": {"type": "string", "description": "A domain name."}}}, "required": ["domains"], "additionalProperties": false}, "examples": {"clear_caches": {"summary": "Clear caches for specific domains", "value": {"domains": ["example.com", "www.example.com"]}}}}}}, "responses": {"202": {"description": "Cache clear started", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Varnish domain cache clear started.", "description": "Confirmation message that the cache clear has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc"}}, "message": "Varnish domain cache clear started."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/eips": {"get": {"summary": "Retrieves a collection of egress IPs for the specified environment.", "operationId": "getEgressIpsByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:list-egress-ips"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}, {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}], "responses": {"200": {"description": "Egress IP collection", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "description": "Egress IP properties", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the egress IP."}, "status": {"type": "string", "description": "Current status of the egress IP."}, "ipv4": {"type": "string", "description": "The IPv4 address."}, "ipv6": {"type": ["string", "null"], "description": "The IPv6 address, if assigned."}, "flags": {"type": "object", "description": "Status flags for the egress IP.", "additionalProperties": {"type": "boolean"}}}, "required": ["id", "status", "ipv4", "flags"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/eips?limit=25&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/eips?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/eips?limit=25{&offset}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 25, "offset": 0}, "_embedded": {"items": [{"id": "eip-a1b2c3d4-e5f6-7890-abcd-ef1234567890", "status": "active", "ipv4": "203.0.113.10", "ipv6": null, "flags": {"is_primary": true}}]}}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/private-network": {"get": {"summary": "Retrieves the private network associated with the specified environment.", "operationId": "findPrivateNetworkByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:find-private-network"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "responses": {"200": {"description": "Private network details", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "description": "Private network reference properties", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the private network."}, "label": {"type": ["string", "null"], "description": "Human-readable label for the private network."}}, "required": ["id"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"id": "pn-a1b2c3d4-e5f6-7890-abcd-ef1234567890", "label": "Production VPC", "_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/private-network"}}}}}, "links": {"self": {"operationId": "findPrivateNetworkByEnvironmentId", "parameters": {"environmentId": "$request.path.environmentId"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "put": {"summary": "Associates the specified environment with a private network.", "operationId": "saveEnvironmentPrivateNetworkByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:associate-private-network"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "requestBody": {"description": "Associate private network request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"private_network_id": {"type": "string", "description": "The identifier of the private network to associate with this environment."}}, "required": ["private_network_id"], "additionalProperties": false, "minProperties": 1}, "examples": {"associate": {"summary": "Associate a private network", "value": {"private_network_id": "pn-a1b2c3d4-e5f6-7890-abcd-ef1234567890"}}}}}}, "responses": {"202": {"description": "Private network association started", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Associating private network started.", "description": "Confirmation message that the association has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/private-network"}}, "message": "Associating private network started."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "delete": {"summary": "Disassociates the specified environment from its private network.", "operationId": "deleteEnvironmentPrivateNetworkByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:disassociate-private-network"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "responses": {"202": {"description": "Private network disassociation started", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Disassociating environment from private network started.", "description": "Confirmation message that the disassociation has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/private-network"}}, "message": "Disassociating environment from private network started."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/trusted-proxies": {"get": {"summary": "Retrieves the trusted proxy configuration for the specified environment.", "operationId": "findTrustedProxiesByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:find-trusted-proxies"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "responses": {"200": {"description": "Trusted proxy configuration details", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "description": "Trusted proxy configuration properties", "properties": {"cidrs_ipv4": {"type": "array", "description": "List of trusted IPv4 CIDR blocks.", "items": {"type": "string"}}, "cidrs_ipv6": {"type": "array", "description": "List of trusted IPv6 CIDR blocks.", "items": {"type": "string"}}, "associated_cdns": {"type": "object", "description": "Map of CDN configurations associated with this environment, keyed by CDN name.", "additionalProperties": {"type": "object", "properties": {"label": {"type": "string", "description": "Display label for the CDN."}, "is_enabled": {"type": "boolean", "description": "Whether the CDN is enabled."}}, "required": ["label", "is_enabled"]}}}, "required": ["cidrs_ipv4", "cidrs_ipv6", "associated_cdns"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"cidrs_ipv4": ["203.0.113.0/24"], "cidrs_ipv6": [], "associated_cdns": {"cloudflare": {"label": "Cloudflare", "is_enabled": true}}, "_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/trusted-proxies"}}}}}, "links": {"self": {"operationId": "findTrustedProxiesByEnvironmentId", "parameters": {"environmentId": "$request.path.environmentId"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "put": {"summary": "Updates the trusted proxy configuration for the specified environment.", "operationId": "updateTrustedProxiesByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:update-trusted-proxies"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Environments"], "parameters": [{"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "requestBody": {"description": "Update trusted proxies request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"cidrs_ipv4": {"type": "array", "description": "List of trusted IPv4 CIDR blocks.", "items": {"type": "string", "description": "An IPv4 CIDR block (e.g. \"203.0.113.0/24\")."}}, "cidrs_ipv6": {"type": "array", "description": "List of trusted IPv6 CIDR blocks.", "items": {"type": "string", "description": "An IPv6 CIDR block (e.g. \"2001:db8::/32\")."}}, "associated_cdns": {"type": "array", "description": "List of CDN names to associate with this environment.", "items": {"type": "string", "enum": ["akamai", "cloudflare", "fastly"]}}}, "additionalProperties": false, "minProperties": 1}, "examples": {"update": {"summary": "Update trusted proxy configuration", "value": {"cidrs_ipv4": ["203.0.113.0/24"], "cidrs_ipv6": [], "associated_cdns": ["cloudflare"]}}}}}}, "responses": {"200": {"description": "Trusted proxy configuration updated", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Trusted Proxies updated successfully.", "description": "Confirmation message that the configuration has been updated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/trusted-proxies"}}, "message": "Trusted Proxies updated successfully."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/deployments": {"get": {"summary": "Retrieves a collection of deployments for the specified environment.", "operationId": "getDeploymentsByEnvironmentId", "tags": ["Deployments"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:list-deployments"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}, {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}, {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "description": "Deployment properties", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the deployment."}, "environment_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Identifier of the environment this deployment belongs to."}, "status": {"type": "string", "description": "Current status of the deployment.", "enum": ["waiting", "received", "started", "done", "failed", "error", "killed"]}, "code_reference": {"type": "string", "description": "The code reference (e.g. branch or tag) deployed."}, "run_hooks": {"type": "boolean", "description": "Whether deployment hooks were run."}, "hooks_argument": {"type": ["string", "null"], "description": "Additional arguments passed to deployment hooks."}, "created_at": {"type": "string", "format": "date-time", "description": "Timestamp when the deployment was created."}, "started_at": {"type": ["string", "null"], "format": "date-time", "description": "Timestamp when the deployment started."}, "completed_at": {"type": ["string", "null"], "format": "date-time", "description": "Timestamp when the deployment completed."}, "sender_id": {"type": ["string", "null"], "description": "Identifier of the user or system that initiated the deployment."}, "logs": {"type": ["string", "null"], "description": "Deployment log output."}}, "required": ["id", "environment_id", "status", "code_reference", "run_hooks", "created_at"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"deployment_response": {"summary": "Deployment collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=2"}, "limit": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?offset=2{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=2{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=2{&sort}", "templated": true}, "prev": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=0"}, "next": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=4"}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3", "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", "status": "done", "code_reference": "tags/v1.0.0", "run_hooks": true, "hooks_argument": null, "sender_id": null, "created_at": "2025-04-01T13:01:06.603Z", "started_at": "2025-04-01T13:01:10.123Z", "completed_at": "2025-04-01T13:05:00.000Z", "_links": {"self": {"href": "https://api.acquia.com/v3/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3"}, "environment": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323"}}}, {"id": "f1dae0f8-67c7-5d1e-cbe1-1f7604f77de4", "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", "status": "failed", "code_reference": "tags/v0.9.0", "run_hooks": false, "hooks_argument": null, "sender_id": null, "created_at": "2025-03-28T09:15:00.000Z", "started_at": "2025-03-28T09:15:05.000Z", "completed_at": "2025-03-28T09:18:00.000Z", "_links": {"self": {"href": "https://api.acquia.com/v3/deployments/f1dae0f8-67c7-5d1e-cbe1-1f7604f77de4"}, "environment": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323"}}}]}}}}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "post": {"summary": "Starts a deployment for the specified environment.", "operationId": "createDeploymentByEnvironmentId", "tags": ["Deployments"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:create-deployment"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "requestBody": {"description": "Deployment start request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"run_hooks": {"type": "boolean", "description": "Whether to run deployment hooks."}, "code_reference": {"type": "string", "description": "The code reference (branch or tag) to deploy."}, "hooks_argument": {"type": "string", "description": "Additional arguments passed to deployment hooks."}}, "required": ["run_hooks", "code_reference"], "additionalProperties": false, "minProperties": 1}, "examples": {"start_deployment": {"summary": "Start a deployment", "description": "Starts a deployment for the specified environment.", "value": {"run_hooks": true, "code_reference": "release-2025-01-15", "hooks_argument": "--migrate --clear-cache"}}}}}}, "responses": {"202": {"description": "Deployment started", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Deployment started.", "description": "Confirmation message that the deployment has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3"}}, "message": "Deployment started."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/code-deploy": {"get": {"summary": "Retrieves the code deploy concurrency setting for the environment.", "operationId": "findCodeDeployByEnvironmentId", "tags": ["Code Deploys"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:find-code-deploy"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "properties": {"concurrency": {"type": "integer", "minimum": 1, "maximum": 100, "description": "Maximum number of concurrent code deploys allowed for the environment."}}, "required": ["concurrency"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"concurrency": 5, "_links": {"self": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/code-deploy"}}}}}, "links": {"self": {"operationId": "findCodeDeployByEnvironmentId", "parameters": {"environmentId": "$request.path.environmentId"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "put": {"summary": "Updates the code deploy concurrency setting for the environment.", "operationId": "updateCodeDeployByEnvironmentId", "tags": ["Code Deploys"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:update-code-deploy"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "requestBody": {"description": "Code deploy concurrency update request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"concurrency": {"type": "integer", "minimum": 1, "maximum": 100, "description": "Maximum number of concurrent code deploys allowed for the environment."}}, "required": ["concurrency"], "additionalProperties": false, "minProperties": 1}, "examples": {"update_concurrency": {"summary": "Update code deploy concurrency", "description": "Sets the maximum concurrent code deploys for the environment.", "value": {"concurrency": 10}}}}}}, "responses": {"200": {"description": "Code deploy concurrency setting updated", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Code deploy settings updated successfully.", "description": "Confirmation message that the concurrency setting has been updated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/code-deploy"}}, "message": "Code deploy settings updated successfully."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/site-instances": {"post": {"summary": "Associates a site with the specified environment.", "operationId": "createSiteInstanceByEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:create-site-instance"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "requestBody": {"description": "Create site instance request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"site_id": {"type": "string", "description": "The UUID of the site to associate with this environment."}, "source_environment_id": {"type": "string", "description": "The UUID of the environment to copy files and database from during creation."}, "source_site_id": {"type": "string", "description": "The UUID of the source site to copy files from during creation."}, "hook_arguments": {"type": "string", "description": "Additional arguments to pass to deployment hooks during creation."}}, "required": ["site_id"], "additionalProperties": false}, "examples": {"create": {"summary": "Associate a site with an environment", "value": {"site_id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc"}}}}}}, "responses": {"202": {"description": "Site instance creation started", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instance creation started.", "description": "Confirmation message that site association has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323"}}, "message": "Site instance creation started."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/site-instances/actions/reorder": {"post": {"summary": "Updates the priority order of site instances for the environment.", "operationId": "reorderSiteInstancesByEnvironmentId", "tags": ["Site Instances"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:reorder-site-instances"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "requestBody": {"description": "Site instances reorder request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"site_instance_ids": {"type": "array", "description": "List of site instance IDs in the desired priority order.", "items": {"type": "string", "description": "Site instance identifier in the format {siteId}.{environmentId} (dot-separated site and environment UUIDs)."}}}, "required": ["site_instance_ids"], "additionalProperties": false, "minProperties": 1}, "examples": {"reorder": {"summary": "Reorder site instances", "description": "Provides the desired order of site instance IDs for the environment.", "value": {"site_instance_ids": ["3e8ecbec-ea7c-4260-8414-ef2938c859bc.a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3", "b1d8e2f8-67c7-5d1e-cbe1-1f7604f77de4.c2e9f3a9-78d8-6e2f-dcf2-2a8715a88ef5", "d3fa04ba-89e9-4f3a-edf3-3b9826b99fa6.e4ab15cb-90fa-4a4b-fea4-4c0937c00ab7"]}}}}}}, "responses": {"200": {"description": "Site instances reordered successfully", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instances reordered successfully.", "description": "Confirmation message that the site instances have been reordered."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/site-instances"}}, "message": "Site instances reordered successfully."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}": {"get": {"summary": "Get site instance details.", "operationId": "findSiteInstanceBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:find"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the site."}, {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "responses": {"200": {"description": "Site Instance details", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "description": "Site Instance properties", "properties": {"site_id": {"type": "string", "description": "The unique identifier of the site", "pattern": "^[a-zA-Z0-9-]+$"}, "environment_id": {"type": "string", "description": "The unique identifier of the environment", "pattern": "^[a-zA-Z0-9-]+$"}, "status": {"type": "string", "description": "The current status of the site instance", "enum": ["active", "creating", "create-failed", "updating", "update-failed", "deleting", "deleted", "delete-failed"]}, "health_status": {"type": "object", "description": "Health status information for the site instance", "properties": {"code": {"type": "string", "description": "Health status code"}, "summary": {"type": "string", "description": "Summary of the health status"}, "details": {"type": "string", "description": "Detailed health status information"}}, "required": ["code", "summary", "details"]}, "domains": {"type": "array", "description": "List of domains associated with the site instance", "items": {"type": "string"}}, "deployment_order": {"type": ["integer", "null"], "description": "The order in which this site instance is deployed relative to others.", "example": 1}, "delete_at": {"type": ["string", "null"], "format": "date-time", "description": "The scheduled deletion date-time for this site instance, if set."}, "date_marked_for_deletion": {"type": ["string", "null"], "format": "date-time", "description": "The date-time when this site instance was marked for deletion."}, "protection_mode": {"type": ["object", "null"], "description": "The current protection mode of the site instance", "properties": {"is_enabled": {"type": "boolean", "description": "Indicates whether the protection mode is enabled for the site instance"}, "is_inherited": {"type": "boolean", "description": "Indicates whether the protection mode is inherited from the environment"}}, "required": ["is_enabled", "is_inherited"]}}, "required": ["site_id", "environment_id", "status", "health_status", "domains"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323"}}, "site_id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", "status": "active", "health_status": {"code": "OK", "summary": "The health status is OK.", "details": "The site instance is active"}, "domains": ["example.com", "example-2.com"], "protection_mode": {"is_enabled": true, "is_inherited": true}}}}, "links": {"self": {"operationId": "findSiteInstanceBySiteIdAndEnvironmentId", "parameters": {"siteId": "$request.path.siteId", "environmentId": "$request.path.environmentId"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "delete": {"summary": "Dissociates a site and environment with no grace period.", "operationId": "deleteSiteInstanceBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:delete"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the site."}, {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "responses": {"202": {"description": "Site instance deletion started", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instance deletion started.", "description": "Confirmation message that the deletion has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323"}}, "message": "Site instance deletion started."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/files": {"post": {"summary": "Copies files from one environment to another for the specified site instance.", "operationId": "copySiteInstanceFilesBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:copy-files"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the site."}, {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "requestBody": {"description": "Copy site instance files request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"source_environment_id": {"type": "string", "description": "The UUID of the environment to copy files from."}}, "required": ["source_environment_id"], "additionalProperties": false}, "examples": {"copy_files": {"summary": "Copy files from another environment", "value": {"source_environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323"}}}}}}, "responses": {"202": {"description": "File copy started", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "File copy started.", "description": "Confirmation message that the file copy has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323"}}, "message": "File copy started."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/actions/cancel": {"post": {"summary": "Dissociates a site and environment.", "operationId": "cancelSiteInstanceBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:cancel"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the site."}, {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "responses": {"202": {"description": "Site instance cancellation started", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instance cancellation started.", "description": "Confirmation message that the cancellation has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323"}}, "message": "Site instance cancellation started."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/actions/enable-protection-mode": {"post": {"summary": "Enable Site Instance Protection mode.", "operationId": "enableSiteInstanceProtectionModeBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:enable-protection-mode"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the site."}, {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "responses": {"202": {"description": "Enable protection mode initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instance protection mode enabled.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323"}}, "message": "Site instance protection mode enabled."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/actions/disable-protection-mode": {"post": {"summary": "Disable Site Instance Protection mode.", "operationId": "disableSiteInstanceProtectionModeBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:disable-protection-mode"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the site."}, {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "responses": {"202": {"description": "Disable protection mode initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instance protection mode disabled.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323"}}, "message": "Site instance protection mode disabled."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/actions/inherit-protection-mode": {"post": {"summary": "Inherit Site Instance Protection mode.", "operationId": "inheritSiteInstanceProtectionModeBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:inherit-protection-mode"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the site."}, {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "responses": {"202": {"description": "Inherit protection mode initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instance protection mode inherited from environment.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323"}}, "message": "Site instance protection mode inherited from environment."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/actions/recover": {"post": {"summary": "Recovers a site instance that is scheduled for deletion", "operationId": "recoverSiteInstanceBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:recover"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the site."}, {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "responses": {"202": {"description": "Site instance restoration started", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instance restoration started.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323"}, "parent": {"href": "https://api.acquia.com/v3/site-instances"}}, "message": "Site instance restoration started."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/actions/schedule-delete": {"post": {"summary": "Schedules a site instance for deletion.", "operationId": "scheduleDeleteSiteInstanceBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:schedule-delete"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the site."}, {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "responses": {"202": {"description": "Site instance deletion scheduled", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instance deletion scheduled.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323"}, "parent": {"href": "https://api.acquia.com/v3/site-instances"}}, "message": "Site instance deletion scheduled."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/domains": {"get": {"summary": "Retrieves a collection of domains for the specified site instance.", "operationId": "getDomainsBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:list-domains"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Domains"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the site."}, {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}, {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}, {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}], "responses": {"200": {"description": "Domain collection", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "description": "Domain properties", "properties": {"name": {"type": "string", "description": "The domain name."}, "is_managed": {"type": "boolean", "description": "Whether the domain is managed by Acquia."}}, "required": ["name", "is_managed"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2&offset=0{&sort}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 2, "offset": 0}, "_embedded": {"items": [{"name": "example.com", "is_managed": false, "_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com"}}}]}}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/domains/{domainName}": {"get": {"summary": "Retrieves details for the specified domain on a site instance.", "operationId": "findDomainBySiteIdAndEnvironmentIdAndDomainName", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:find-domain"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Domains"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the site."}, {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}, {"name": "domainName", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*$"}, "description": "The fully-qualified domain name (e.g., www.example.com)."}], "responses": {"200": {"description": "Domain details", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "description": "Domain properties", "properties": {"name": {"type": "string", "description": "The domain name."}, "is_managed": {"type": "boolean", "description": "Whether the domain is managed by Acquia."}}, "required": ["name", "is_managed"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"name": "example.com", "is_managed": false, "_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com"}}}}}, "links": {"self": {"operationId": "findDomainBySiteIdAndEnvironmentIdAndDomainName", "parameters": {"siteId": "$request.path.siteId", "environmentId": "$request.path.environmentId", "domainName": "$request.path.domainName"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "put": {"summary": "Adds a domain to the specified site instance.", "operationId": "saveDomainBySiteIdAndEnvironmentIdAndDomainName", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:update-domain"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Domains"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the site."}, {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}, {"name": "domainName", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*$"}, "description": "The fully-qualified domain name (e.g., www.example.com)."}], "responses": {"202": {"description": "Domain addition started", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Domain addition started.", "description": "Confirmation message that the domain addition has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com"}}, "message": "Domain addition started."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "delete": {"summary": "Removes a domain from the specified site instance.", "operationId": "deleteDomainBySiteIdAndEnvironmentIdAndDomainName", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:delete-domain"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Domains"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the site."}, {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}, {"name": "domainName", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*$"}, "description": "The fully-qualified domain name (e.g., www.example.com)."}], "responses": {"202": {"description": "Domain removal started", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Domain removal started.", "description": "Confirmation message that the domain removal has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com"}}, "message": "Domain removal started."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/domains/{domainName}/status": {"get": {"summary": "Retrieves the DNS status for the specified domain on a site instance.", "operationId": "findDomainStatusBySiteIdAndEnvironmentIdAndDomainName", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:find-domain-status"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Domains"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the site."}, {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}, {"name": "domainName", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*$"}, "description": "The fully-qualified domain name (e.g., www.example.com)."}], "responses": {"200": {"description": "Domain DNS status details", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "description": "Domain DNS status properties", "properties": {"hostname": {"type": "string", "description": "The domain name."}, "site_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Identifier of the site this domain belongs to."}, "environment_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Identifier of the environment this domain belongs to."}, "ip_addresses": {"type": "array", "description": "List of IP addresses resolving for this domain.", "items": {"type": "string"}}, "cnames": {"type": "array", "description": "List of CNAME records resolving for this domain.", "items": {"type": "string"}}, "flags": {"type": "object", "description": "Status flags for the domain.", "properties": {"default": {"type": "boolean", "description": "Whether this is the default domain."}, "active": {"type": "boolean", "description": "Whether the domain is active."}, "dns_resolves": {"type": "boolean", "description": "Whether the domain DNS resolves correctly."}, "acquia_hosted": {"type": "boolean", "description": "Whether the domain is hosted on Acquia infrastructure."}}, "required": ["default", "active", "dns_resolves", "acquia_hosted"]}}, "required": ["hostname", "site_id", "environment_id", "ip_addresses", "cnames", "flags"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"hostname": "example.com", "site_id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", "ip_addresses": ["203.0.113.10"], "cnames": [], "flags": {"default": false, "active": true, "dns_resolves": true, "acquia_hosted": true}, "_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com/status"}}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/database": {"get": {"summary": "Retrieves database details for the specified site instance.", "operationId": "findDatabaseBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:find-database"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instance Databases"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the site."}, {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "responses": {"200": {"description": "Database details", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "description": "Database properties", "properties": {"database_name": {"type": "string", "description": "The name of the database."}, "database_role": {"type": "string", "description": "The role of the database (e.g. the site username)."}}, "required": ["database_name", "database_role"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"database_name": "site_dev", "database_role": "site_dev_user", "_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database"}}}}}, "links": {"self": {"operationId": "findDatabaseBySiteIdAndEnvironmentId", "parameters": {"siteId": "$request.path.siteId", "environmentId": "$request.path.environmentId"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "post": {"summary": "Copies a database from another environment to the specified site instance.", "operationId": "copySiteInstanceDatabaseBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:copy-database"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instance Databases"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the site."}, {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "requestBody": {"description": "Copy site instance database request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"source_environment_id": {"type": "string", "description": "The UUID of the environment to copy the database from."}}, "required": ["source_environment_id"], "additionalProperties": false}, "examples": {"copy_database": {"summary": "Copy database from another environment", "value": {"source_environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323"}}}}}}, "responses": {"202": {"description": "Database copy started", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Database copy started.", "description": "Confirmation message that the database copy has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database"}}, "message": "Database copy started."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/database/connection": {"get": {"summary": "Retrieves database connection credentials for the specified site instance.", "operationId": "findDatabaseConnectionBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:find-database-connection"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instance Databases"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the site."}, {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "responses": {"200": {"description": "Database connection credential details", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "description": "Database connection credential properties", "properties": {"db_host": {"type": "string", "description": "The database host."}, "name": {"type": "string", "description": "The database name."}, "password": {"type": "string", "description": "The database password."}, "user_name": {"type": "string", "description": "The database username."}, "ssh_host": {"type": "string", "description": "The SSH host for tunneling to the database."}}, "required": ["db_host", "name", "password", "user_name", "ssh_host"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"db_host": "db.example.com", "name": "site_dev", "password": "s3cr3t", "user_name": "site_dev_user", "ssh_host": "site.dev.ssh.hosted.acquia-sites.com", "_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/connection"}}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/database/backups": {"get": {"summary": "Retrieves a collection of database backups for the specified site instance.", "operationId": "getDatabaseBackupsBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:list-database-backups"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instance Databases"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the site."}, {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}, {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}, {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}], "responses": {"200": {"description": "Database backup collection", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "description": "Database backup properties", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the database backup."}, "database_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Identifier of the database this backup belongs to."}, "created_at": {"type": "string", "format": "date-time", "description": "Timestamp when the backup was created."}, "type": {"type": "string", "enum": ["DAILY", "ON_DEMAND"], "description": "The type of backup."}}, "required": ["id", "database_id", "created_at", "type"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2&offset=0{&sort}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "database_id": "b2c3d4e5-f6a7-8901-bcde-f01234567891", "created_at": "2025-04-01T02:00:00.000Z", "type": "DAILY", "_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups/a1b2c3d4-e5f6-7890-abcd-ef1234567890"}}}]}}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "post": {"summary": "Creates a database backup for the specified site instance.", "operationId": "createDatabaseBackupBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:create-database-backup"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instance Databases"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the site."}, {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "responses": {"202": {"description": "Database backup creation started", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Database backup started.", "description": "Confirmation message that the database backup has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups"}}, "message": "Database backup started."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/database/backups/{backupId}": {"get": {"summary": "Retrieves details for the specified database backup.", "operationId": "findDatabaseBackupBySiteIdAndEnvironmentIdAndBackupId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:find-database-backup"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instance Databases"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the site."}, {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}, {"name": "backupId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Database backup identifier"}], "responses": {"200": {"description": "Database backup details", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "description": "Database backup properties", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the database backup."}, "database_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Identifier of the database this backup belongs to."}, "created_at": {"type": "string", "format": "date-time", "description": "Timestamp when the backup was created."}, "type": {"type": "string", "enum": ["DAILY", "ON_DEMAND"], "description": "The type of backup."}}, "required": ["id", "database_id", "created_at", "type"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "database_id": "b2c3d4e5-f6a7-8901-bcde-f01234567891", "created_at": "2025-04-01T02:00:00.000Z", "type": "DAILY", "_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups/a1b2c3d4-e5f6-7890-abcd-ef1234567890"}, "download": {"href": "https://s3.amazonaws.com/acquia-backups/backup-a1b2c3d4.sql.gz?X-Amz-Expires=3600&X-Amz-Signature=abc123"}}}}}, "links": {"self": {"operationId": "findDatabaseBackupBySiteIdAndEnvironmentIdAndBackupId", "parameters": {"siteId": "$request.path.siteId", "environmentId": "$request.path.environmentId", "backupId": "$request.path.backupId"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "delete": {"summary": "Deletes the specified database backup.", "operationId": "deleteDatabaseBackupBySiteIdAndEnvironmentIdAndBackupId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:delete-database-backup"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instance Databases"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the site."}, {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}, {"name": "backupId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Database backup identifier"}], "responses": {"202": {"description": "Database backup deletion started", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Database backup deletion started.", "description": "Confirmation message that the deletion has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups/a1b2c3d4-e5f6-7890-abcd-ef1234567890"}}, "message": "Database backup deletion started."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/database/backups/{backupId}/actions/restore": {"post": {"summary": "Restores the specified database backup to the site instance.", "operationId": "restoreDatabaseBackupBySiteIdAndEnvironmentIdAndBackupId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:restore-database-backup"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instance Databases"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the site."}, {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}, {"name": "backupId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Database backup identifier"}], "responses": {"202": {"description": "Database backup restore started", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Database restore started.", "description": "Confirmation message that the restore has been started."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups/a1b2c3d4-e5f6-7890-abcd-ef1234567890"}}, "message": "Database restore started."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/deployments/{deploymentId}": {"get": {"summary": "Retrieves the status of a deployment by deployment ID.", "operationId": "findDeploymentByDeploymentId", "tags": ["Deployments"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "deployments:find"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"name": "deploymentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the deployment."}], "responses": {"200": {"description": "Deployment details", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "description": "Deployment properties", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the deployment."}, "environment_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Identifier of the environment this deployment belongs to."}, "status": {"type": "string", "description": "Current status of the deployment.", "enum": ["waiting", "received", "started", "done", "failed", "error", "killed"]}, "code_reference": {"type": "string", "description": "The code reference (e.g. branch or tag) deployed."}, "run_hooks": {"type": "boolean", "description": "Whether deployment hooks were run."}, "hooks_argument": {"type": ["string", "null"], "description": "Additional arguments passed to deployment hooks."}, "created_at": {"type": "string", "format": "date-time", "description": "Timestamp when the deployment was created."}, "started_at": {"type": ["string", "null"], "format": "date-time", "description": "Timestamp when the deployment started."}, "completed_at": {"type": ["string", "null"], "format": "date-time", "description": "Timestamp when the deployment completed."}, "sender_id": {"type": ["string", "null"], "description": "Identifier of the user or system that initiated the deployment."}, "logs": {"type": ["string", "null"], "description": "Deployment log output."}}, "required": ["id", "environment_id", "status", "code_reference", "run_hooks", "created_at"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"id": "e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3", "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", "status": "started", "code_reference": "tags/v1.0.0", "run_hooks": true, "hooks_argument": "--skip-db-update", "created_at": "2025-04-01T13:01:06.603Z", "started_at": "2025-04-01T13:01:10.123Z", "completed_at": null, "sender_id": null, "logs": null, "_links": {"self": {"href": "https://api.acquia.com/v3/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3"}, "environment": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323"}}}}}, "links": {"self": {"operationId": "findDeploymentByDeploymentId", "parameters": {"deploymentId": "$request.path.deploymentId"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/deployments/{deploymentId}/actions/stop": {"post": {"summary": "Stops a deployment by sending a stop request.", "operationId": "stopDeploymentByDeploymentId", "tags": ["Deployments"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "deployments:stop"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"name": "deploymentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the deployment."}], "responses": {"202": {"description": "Deployment stop initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Deployment stop initiated.", "description": "Confirmation message that the deployment stop has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3"}}, "message": "Deployment stop initiated."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/deployments/{deploymentId}/actions/terminate": {"post": {"summary": "Terminates a deployment immediately.", "operationId": "terminateDeploymentByDeploymentId", "tags": ["Deployments"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "deployments:terminate"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"name": "deploymentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the deployment."}], "responses": {"202": {"description": "Deployment termination is initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Deployment termination initiated.", "description": "Confirmation message that the deployment termination has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3"}}, "message": "Deployment termination initiated."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/site-instances/{siteId}.{environmentId}/actions/wipe": {"post": {"summary": "Wipes a site instance.", "operationId": "wipeSiteInstanceBySiteIdAndEnvironmentId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "site-instances:wipe"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "tags": ["Site Instances"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the site."}, {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "responses": {"202": {"description": "Site instance wipe started", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site instance wipe started.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://cloud.acquia.com/api/site-instances/d3f7270e-c45f-4801-9308-5e8afe84a323.e3f7270e-c45f-4801-9308-5e8afe84a323"}, "parent": {"href": "https://cloud.acquia.com/api/site-instances"}}, "message": "Site instance wipe started."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/domain-patterns": {"get": {"summary": "Retrieves a collection of domain patterns for the specified environment.", "operationId": "getDomainPatternsByEnvironmentId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:list-domain-patterns"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}, {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the domain pattern."}, "pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].acme.com/app). The [site-name] token is mandatory; [environment-name] is optional at environment level. Domain rules (enforced in service layer): \u2264 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] \u2264 14 chars). One pattern per environment.\n", "example": "[site-name].acme.com"}}, "required": ["id", "pattern"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"domain_pattern_collection": {"summary": "Domain pattern collection", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns"}, "limit": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25{&offset}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25&offset=0{&sort}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 25, "offset": 0}, "_embedded": {"items": [{"id": "11111111-1111-1111-1111-111111111111", "pattern": "[site-name].acme.com", "_links": {"self": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111"}}}]}}}, "domain_pattern_collection_empty": {"summary": "Empty domain pattern collection", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns"}, "limit": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25{&offset}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25&offset=0{&sort}", "templated": true}}, "count": 0, "total": 0, "pagination": {"total": 0, "limit": 25, "offset": 0}, "_embedded": {"items": []}}}}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "post": {"summary": "Creates a domain pattern for the specified environment.", "operationId": "createDomainPatternByEnvironmentId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:create-domain-pattern"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}], "requestBody": {"description": "Create domain pattern request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The domain pattern to apply to all associated sites in this environment, optionally followed by a single path segment. The [site-name] token is mandatory; [environment-name] is optional. Domain \u2264 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per environment) are enforced at the service layer.\n", "example": "[site-name].acme.com"}}, "required": ["pattern"], "additionalProperties": false}, "examples": {"create_domain_pattern": {"summary": "Create a domain pattern", "value": {"pattern": "[site-name].acme.com"}}}}}}, "responses": {"202": {"description": "Domain pattern creation initiated.", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The domain pattern is being applied to all associated sites in this environment.", "description": "Confirmation message that the domain pattern is being applied."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111"}}, "message": "The domain pattern is being applied to all associated sites in this environment."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/domain-patterns/{patternId}": {"get": {"summary": "Retrieves a domain pattern by environment ID and pattern ID.", "operationId": "findDomainPatternByEnvironmentIdAndPatternId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:find-domain-pattern"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}, {"name": "patternId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the domain pattern."}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the domain pattern."}, "pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].acme.com/app). The [site-name] token is mandatory; [environment-name] is optional at environment level. Domain rules (enforced in service layer): \u2264 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] \u2264 14 chars). One pattern per environment.\n", "example": "[site-name].acme.com"}}, "required": ["id", "pattern"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"id": "11111111-1111-1111-1111-111111111111", "pattern": "[site-name].acme.com", "_links": {"self": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111"}}}}}, "links": {"self": {"operationId": "findDomainPatternByEnvironmentIdAndPatternId", "parameters": {"environmentId": "$request.path.environmentId", "patternId": "$request.path.patternId"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "put": {"summary": "Updates a domain pattern for the specified environment.", "operationId": "updateDomainPatternByEnvironmentIdAndPatternId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:update-domain-pattern"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}, {"name": "patternId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the domain pattern."}], "requestBody": {"description": "Update domain pattern request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The updated domain pattern to apply to all associated sites in this environment, optionally followed by a single path segment. The [site-name] token is mandatory. Domain \u2264 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per environment) are enforced at the service layer.\n"}}, "required": ["pattern"], "additionalProperties": false, "minProperties": 1}, "examples": {"update_domain_pattern": {"summary": "Update a domain pattern", "value": {"pattern": "[site-name].staging.acme.com"}}}}}}, "responses": {"202": {"description": "Domain pattern update initiated.", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The domain pattern update is being applied to all associated sites in this environment.", "description": "Confirmation message that the domain pattern update is being applied."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111"}}, "message": "The domain pattern update is being applied to all associated sites in this environment."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}, "delete": {"summary": "Deletes a domain pattern for the specified environment. Engineering role only.", "operationId": "deleteDomainPatternByEnvironmentIdAndPatternId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:delete-domain-pattern"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "environment-service"}}, "parameters": [{"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}, {"name": "patternId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the domain pattern."}], "responses": {"202": {"description": "Domain pattern deletion initiated. The 202 covers two async operations: (1) removal of the pattern record and (2) a bulk cleanup that disassociates any URLs already generated from this pattern on all associated site instances in the environment. Both operations complete before the final settled state is observable.\n", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The domain pattern is being removed from all associated sites in this environment.", "description": "Confirmation message that the domain pattern is being removed."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111"}}, "message": "The domain pattern is being removed from all associated sites in this environment."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Environment_Service_API_BearerAuth": []}]}}, "/ssh-keys": {"get": {"summary": "Gets a list of SSH keys.", "description": "Gets a list of all SSH keys accessible to the requester. Each key includes\na `user_id` field identifying the owner.\n\nTo look up the owner of an SSH key by fingerprint or public key, apply a\nmandatory filter: `GET /ssh-keys?filter=fingerprint%3D` or\n`GET /ssh-keys?filter=public_key%3D`. The matching key(s) will\ninclude the `user_id` of the owner.\n\nFilterable fields:\n* `label`\n* `fingerprint`\n* `public_key`\n* `user_id`\n\nSortable fields:\n* `label`\n", "operationId": "getSshKeys", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "ssh-keys:list"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "ssh-key-service"}}, "tags": ["SSH Keys"], "parameters": [{"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals (default if no operator specified)\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `label=primary` - Filter by label equals primary\n- `fingerprint=@SHA256` - Filter by fingerprint containing \"SHA256\"\n- `label=primary;fingerprint=@SHA256` - label is primary AND fingerprint contains SHA256\n- `label=primary,label=backup` - label is primary OR backup\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "label=primary;fingerprint=@SHA256"}, {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}, {"properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}, {"properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}, {"properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering."}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}, {"properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting."}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}}}]}, {"type": "object", "description": "A collection of SSH keys.", "properties": {"_embedded": {"type": "object", "description": "A collection of SSH keys matching the request parameters.", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "required": ["id", "label", "public_key", "fingerprint", "created_at", "user_id"], "description": "Details an SSH key.", "properties": {"id": {"type": "string", "description": "The unique identifier of the SSH key.", "pattern": "^[a-zA-Z0-9-]+$"}, "label": {"type": "string", "description": "The human-readable key label."}, "public_key": {"type": "string", "description": "The public key.", "minLength": 64}, "fingerprint": {"type": "string", "description": "The public key fingerprint.", "pattern": "^[A-Za-z0-9:+/=.-]+$"}, "created_at": {"type": "string", "format": "date-time", "description": "The key creation date."}, "user_id": {"type": "string", "description": "The unique identifier of the user who owns this SSH key.", "pattern": "^[a-zA-Z0-9-]+$"}}}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"ssh_keys": {"summary": "SSH key collection", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/ssh-keys?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/ssh-keys?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/ssh-keys?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/ssh-keys?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/ssh-keys?limit=2&offset=0{&sort}", "templated": true}, "next": {"href": "https://api.acquia.com/v3/ssh-keys?limit=2&offset=2"}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "1acbb1a5-e864-4b8e-a3f9-b1ed462afd25", "label": "primary", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQChwPHzTTDKDpSbpa2+d22LcbQmsw92eLsUK3Fmei1fiGDkd34NsYCN8m7lsi3NbvdMS83CtPQPWiCveYPzFs1/hHc4PYj8opD2CNnr5iWVVbyaulCYHCgVv4aB/ojcexg8q483A4xJeF15TiCr/gu34rK6ucTvC/tn/rCwJBudczvEwt0klqYwv8Cl/ytaQboSuem5KgSjO3lMrb6CWtfSNhE43ZOw+UBFBqxIninN868vGMkIv9VY34Pwj54rPn/ItQd6Ef4B0KHHaGmzK0vfP+AK7FxNMoHnj3iYT33KZNqtDozdn5tYyH/bThPebEtgqUn+/w5l6wZIC/8zzvls/127ngHk+jNa0PlNyS2TxhPUK4NaPHIEnnrlp07JEYC4ImcBjaYCWAdcTcUkcJjwZQkN4bGmyO9cjICH98SdLD/HxqzTHeaYDbAX/Hu9HfaBb5dXLWsjw3Xc6hoVnUUZbMQyfgb0KgxDLh92eNGxJkpZiL0VDNOWCxDWsNpzwhLNkLqCvI6lyxiLaUzvJAk6dPaRhExmCbU1lDO2eR0FdSwC1TEhJOT9eDIK1r2hztZKs2oa5FNFfB/IFHVWasVFC9N2h/r/egB5zsRxC9MqBLRBq95NBxaRSFng6ML5WZSw41Qi4C/JWVm89rdj2WqScDHYyAdwyyppWU4T5c9Fmw== example@example.com", "fingerprint": "SHA256:7a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8g9h0i1j2k3l4m5n6o7p8q9r0s1", "created_at": "2024-10-01T12:30:00Z", "user_id": "a47ac10b-58cc-4372-a567-0e02b2c3d479", "_links": {"self": {"href": "https://api.acquia.com/v3/ssh-keys/1acbb1a5-e864-4b8e-a3f9-b1ed462afd25"}}}, {"id": "2bcbb1a5-e864-4b8e-a3f9-b1ed462afd26", "label": "backup", "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFf2T1I1d8T1B9Q1b8pS6m2xvY3i5q8sNnU5oQwY5vS9 example@example.com", "fingerprint": "SHA256:9b8c7d6e5f4a3b2c1d0e9f8a7b6c5d4e3f2a1b0c9d8e7f6a5b4c3d2e1f0a9b8", "created_at": "2024-10-02T09:15:00Z", "user_id": "b58bd21c-69dd-5483-b678-1f13c3d4e580", "_links": {"self": {"href": "https://api.acquia.com/v3/ssh-keys/2bcbb1a5-e864-4b8e-a3f9-b1ed462afd26"}}}]}}}}}}}, "400": {"description": "Bad Request - Validation Error", "content": {"application/json": {"schema": {"type": "object", "required": ["error", "message"], "description": "A validation error.", "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "object", "description": "The validation error message keyed by its field or group name.", "additionalProperties": {"type": "string"}}}}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"SSH_Key_Service_API_BearerAuth": []}]}, "post": {"summary": "Installs a new SSH key for the current user.", "description": "Installs a new SSH key for the current user.", "operationId": "createSshKey", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "ssh-keys:create"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "ssh-key-service"}}, "tags": ["SSH Keys"], "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "required": ["label", "public_key"], "description": "Describes the request body for an SSH key.", "properties": {"label": {"type": "string", "description": "The SSH key label."}, "public_key": {"type": "string", "description": "The public key."}}, "additionalProperties": false, "minProperties": 1}, "example": {"label": "mykey", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQChwPHzTTDKDpSbpa2+d22LcbQmsw92eLsUK3Fmei1fiGDkd34NsYCN8m7lsi3NbvdMS83CtPQPWiCveYPzFs1/hHc4PYj8opD2CNnr5iWVVbyaulCYHCgVv4aB/ojcexg8q483A4xJeF15TiCr/gu34rK6ucTvC/tn/rCwJBudczvEwt0klqYwv8Cl/ytaQboSuem5KgSjO3lMrb6CWtfSNhE43ZOw+UBFBqxIninN868vGMkIv9VY34Pwj54rPn/ItQd6Ef4B0KHHaGmzK0vfP+AK7FxNMoHnj3iYT33KZNqtDozdn5tYyH/bThPebEtgqUn+/w5l6wZIC/8zzvls/127ngHk+jNa0PlNyS2TxhPUK4NaPHIEnnrlp07JEYC4ImcBjaYCWAdcTcUkcJjwZQkN4bGmyO9cjICH98SdLD/HxqzTHeaYDbAX/Hu9HfaBb5dXLWsjw3Xc6hoVnUUZbMQyfgb0KgxDLh92eNGxJkpZiL0VDNOWCxDWsNpzwhLNkLqCvI6lyxiLaUzvJAk6dPaRhExmCbU1lDO2eR0FdSwC1TEhJOT9eDIK1r2hztZKs2oa5FNFfB/IFHVWasVFC9N2h/r/egB5zsRxC9MqBLRBq95NBxaRSFng6ML5WZSw41Qi4C/JWVm89rdj2WqScDHYyAdwyyppWU4T5c9Fmw== example@example.com"}}}}, "responses": {"202": {"description": "Accepted", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "required": ["message"], "properties": {"message": {"type": "string", "description": "The human-friendly confirmation of the operation."}}}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Added SSH key.", "description": "Confirmation message."}}}]}, "example": {"message": "Added SSH key.", "_links": {"self": {"href": "https://api.acquia.com/v3/ssh-keys/981b7910-2fe9-11e9-b210-d663bd873d93"}}}}}}, "400": {"description": "Bad Request - Validation Error", "content": {"application/json": {"schema": {"type": "object", "required": ["error", "message"], "description": "A validation error.", "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "object", "description": "The validation error message keyed by its field or group name.", "additionalProperties": {"type": "string"}}}}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"SSH_Key_Service_API_BearerAuth": []}]}}, "/ssh-keys/{sshKeyId}": {"get": {"summary": "Gets an SSH key.", "description": "Gets an SSH key by SSH Key ID.", "operationId": "findSshKeyBySshKeyId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "ssh-keys:find"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "ssh-key-service"}}, "tags": ["SSH Keys"], "parameters": [{"name": "sshKeyId", "in": "path", "description": "The SSH key's unique identifier.", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "example": "981b7910-2fe9-11e9-b210-d663bd873d93"}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "required": ["id", "label", "public_key", "fingerprint", "created_at", "user_id"], "description": "Details an SSH key.", "properties": {"id": {"type": "string", "description": "The unique identifier of the SSH key.", "pattern": "^[a-zA-Z0-9-]+$"}, "label": {"type": "string", "description": "The human-readable key label."}, "public_key": {"type": "string", "description": "The public key.", "minLength": 64}, "fingerprint": {"type": "string", "description": "The public key fingerprint.", "pattern": "^[A-Za-z0-9:+/=.-]+$"}, "created_at": {"type": "string", "format": "date-time", "description": "The key creation date."}, "user_id": {"type": "string", "description": "The unique identifier of the user who owns this SSH key.", "pattern": "^[a-zA-Z0-9-]+$"}}}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"id": "1acbb1a5-e864-4b8e-a3f9-b1ed462afd25", "label": "primary", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQChwPHzTTDKDpSbpa2+d22LcbQmsw92eLsUK3Fmei1fiGDkd34NsYCN8m7lsi3NbvdMS83CtPQPWiCveYPzFs1/hHc4PYj8opD2CNnr5iWVVbyaulCYHCgVv4aB/ojcexg8q483A4xJeF15TiCr/gu34rK6ucTvC/tn/rCwJBudczvEwt0klqYwv8Cl/ytaQboSuem5KgSjO3lMrb6CWtfSNhE43ZOw+UBFBqxIninN868vGMkIv9VY34Pwj54rPn/ItQd6Ef4B0KHHaGmzK0vfP+AK7FxNMoHnj3iYT33KZNqtDozdn5tYyH/bThPebEtgqUn+/w5l6wZIC/8zzvls/127ngHk+jNa0PlNyS2TxhPUK4NaPHIEnnrlp07JEYC4ImcBjaYCWAdcTcUkcJjwZQkN4bGmyO9cjICH98SdLD/HxqzTHeaYDbAX/Hu9HfaBb5dXLWsjw3Xc6hoVnUUZbMQyfgb0KgxDLh92eNGxJkpZiL0VDNOWCxDWsNpzwhLNkLqCvI6lyxiLaUzvJAk6dPaRhExmCbU1lDO2eR0FdSwC1TEhJOT9eDIK1r2hztZKs2oa5FNFfB/IFHVWasVFC9N2h/r/egB5zsRxC9MqBLRBq95NBxaRSFng6ML5WZSw41Qi4C/JWVm89rdj2WqScDHYyAdwyyppWU4T5c9Fmw== example@example.com", "fingerprint": "SHA256:7a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8g9h0i1j2k3l4m5n6o7p8q9r0s1", "created_at": "2024-10-01T12:30:00Z", "user_id": "a47ac10b-58cc-4372-a567-0e02b2c3d479", "_links": {"self": {"href": "https://api.acquia.com/v3/ssh-keys/1acbb1a5-e864-4b8e-a3f9-b1ed462afd25"}}}}}, "links": {"self": {"operationId": "findSshKeyBySshKeyId", "parameters": {"sshKeyId": "$request.path.sshKeyId"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"SSH_Key_Service_API_BearerAuth": []}]}, "delete": {"summary": "Deletes an SSH key.", "description": "Deletes an SSH key by SSH Key ID.", "operationId": "deleteSshKeyBySshKeyId", "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "ssh-keys:delete"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "ssh-key-service"}}, "tags": ["SSH Keys"], "parameters": [{"name": "sshKeyId", "in": "path", "description": "The SSH key's unique identifier.", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "example": "981b7910-2fe9-11e9-b210-d663bd873d93"}], "responses": {"202": {"description": "Accepted", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "required": ["message"], "properties": {"message": {"type": "string", "description": "The human-friendly confirmation of the operation."}}}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Removed SSH key.", "description": "Confirmation message."}}}]}, "example": {"message": "Removed SSH key.", "_links": {"self": {"href": "https://api.acquia.com/v3/ssh-keys/1acbb1a5-e864-4b8e-a3f9-b1ed462afd25"}}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"SSH_Key_Service_API_BearerAuth": []}]}}, "/sites": {"get": {"summary": "Retrieves a list of sites accessible by the user.", "operationId": "getSites", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sites:list"}}}, "tags": ["Sites"], "parameters": [{"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}, {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "description": "A Site resource", "properties": {"id": {"type": "string", "description": "The unique identifier of the site", "pattern": "^[a-zA-Z0-9-]+$", "example": "12345678-1234-1234-1234-123456789012"}, "name": {"type": "string", "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", "minLength": 1, "maxLength": 14, "pattern": "^[a-z][a-z0-9]*$", "example": "mysite"}, "label": {"type": "string", "description": "The human-readable label of the site", "minLength": 1, "maxLength": 50, "example": "My Site 1"}, "description": {"type": "string", "description": "A description of the site", "maxLength": 512, "example": "A production site for the marketing team."}, "codebase_id": {"type": "string", "description": "The unique identifier of the codebase this site belongs to", "pattern": "^[a-zA-Z0-9-]+$", "example": "550e8400-e29b-41d4-a716-446655441210"}, "status": {"type": "string", "description": "The current lifecycle status of the site. ready indicates the site is active and operational. marked-for-deletion indicates the site has been scheduled for deletion and can still be recovered.\n", "enum": ["ready", "marked-for-deletion"], "example": "ready"}, "delete_at": {"type": "string", "format": "date-time", "description": "ISO 8601 datetime indicating when the site is scheduled for deletion. Only present when status is marked-for-deletion.", "example": "2025-06-15T00:00:00Z"}}, "required": ["id", "name", "label", "codebase_id", "status"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"site_collection": {"summary": "Site collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/sites?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/sites?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/sites?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/sites?limit=2&offset=0{&sort}", "templated": true}, "next": {"href": "https://api.acquia.com/v3/sites?limit=2&offset=2"}}, "count": 2, "total": 4, "pagination": {"total": 4, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", "name": "mysite", "label": "My Site", "description": "A description of my site.", "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", "status": "ready", "_links": {"self": {"href": "https://api.acquia.com/v3/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890"}}}, {"id": "e2b3c4d5-f6a7-8901-bcde-f12345678901", "name": "anothersite", "label": "Another Site", "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", "status": "marked-for-deletion", "delete_at": "2025-01-01T00:00:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/sites/e2b3c4d5-f6a7-8901-bcde-f12345678901"}}}]}}}}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Site_Service_API_BearerAuth": []}]}, "post": {"summary": "Creates a site for a codebase.", "operationId": "createSite", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sites:create"}}}, "tags": ["Sites"], "requestBody": {"description": "Site creation request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"name": {"type": "string", "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", "minLength": 1, "maxLength": 14, "pattern": "^[a-z][a-z0-9]*$", "example": "mysite"}, "label": {"type": "string", "description": "The human-readable label for the site.", "minLength": 1, "maxLength": 50, "example": "My Site"}, "codebase_id": {"type": "string", "description": "The unique identifier of the codebase to associate with this site.", "pattern": "^[a-zA-Z0-9-]+$", "example": "a9b8c7d6-e5f4-3210-abcd-ef9876543210"}, "site_id": {"type": "string", "format": "uuid", "description": "An optional explicit UUID for the new site. A UUID is generated automatically if omitted.", "example": "0ebce493-9d09-479d-a9a8-138a206fa687"}, "description": {"type": "string", "description": "An optional description for the site.", "maxLength": 512, "example": "A production site for the marketing team."}}, "required": ["name", "label", "codebase_id"], "additionalProperties": false}, "examples": {"create_site_full": {"summary": "Create a new site with all fields", "value": {"name": "mysite", "label": "My Site", "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", "site_id": "0ebce493-9d09-479d-a9a8-138a206fa687", "description": "This is a description of my site."}}, "create_site_minimal": {"summary": "Create a new site with required fields only", "value": {"name": "newsitename", "label": "New Site Label", "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210"}}}}}}, "responses": {"200": {"description": "Site created", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site creation started.", "description": "Confirmation message indicating site creation has been initiated"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890"}, "parent": {"href": "https://api.acquia.com/v3/sites"}}, "message": "Site creation started."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Site_Service_API_BearerAuth": []}]}}, "/sites/{siteId}": {"get": {"summary": "Retrieves a site by its ID.", "operationId": "findSiteBySiteId", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sites:find"}}}, "tags": ["Sites"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "example": "12345678-1234-1234-1234-123456789012"}, "description": "Unique identifier for the site"}], "responses": {"200": {"description": "Site details", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "description": "A Site resource", "properties": {"id": {"type": "string", "description": "The unique identifier of the site", "pattern": "^[a-zA-Z0-9-]+$", "example": "12345678-1234-1234-1234-123456789012"}, "name": {"type": "string", "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", "minLength": 1, "maxLength": 14, "pattern": "^[a-z][a-z0-9]*$", "example": "mysite"}, "label": {"type": "string", "description": "The human-readable label of the site", "minLength": 1, "maxLength": 50, "example": "My Site 1"}, "description": {"type": "string", "description": "A description of the site", "maxLength": 512, "example": "A production site for the marketing team."}, "codebase_id": {"type": "string", "description": "The unique identifier of the codebase this site belongs to", "pattern": "^[a-zA-Z0-9-]+$", "example": "550e8400-e29b-41d4-a716-446655441210"}, "status": {"type": "string", "description": "The current lifecycle status of the site. ready indicates the site is active and operational. marked-for-deletion indicates the site has been scheduled for deletion and can still be recovered.\n", "enum": ["ready", "marked-for-deletion"], "example": "ready"}, "delete_at": {"type": "string", "format": "date-time", "description": "ISO 8601 datetime indicating when the site is scheduled for deletion. Only present when status is marked-for-deletion.", "example": "2025-06-15T00:00:00Z"}}, "required": ["id", "name", "label", "codebase_id", "status"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_links": {"properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "codebase": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890"}, "codebase": {"href": "https://api.acquia.com/v3/codebases/a9b8c7d6-e5f4-3210-abcd-ef9876543210"}}, "id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", "name": "mysite", "label": "My Site", "description": "This is a description of my site.", "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", "status": "ready"}}}, "links": {"self": {"operationId": "findSiteBySiteId", "parameters": {"siteId": "$request.path.siteId"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Site_Service_API_BearerAuth": []}]}, "put": {"summary": "Updates a site by its ID.", "operationId": "updateSiteBySiteId", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sites:update"}}}, "tags": ["Sites"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "example": "12345678-1234-1234-1234-123456789012"}, "description": "Unique identifier for the site"}], "requestBody": {"description": "Site update request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"label": {"type": "string", "description": "The new human-readable label for the site.", "minLength": 1, "maxLength": 50, "example": "My Updated Site"}, "description": {"type": "string", "description": "The new description for the site.", "maxLength": 512, "example": "Updated description for this site."}}, "additionalProperties": false, "minProperties": 1}, "examples": {"update_label": {"summary": "Update site label", "value": {"label": "My Updated Site"}}, "update_description": {"summary": "Update site description", "value": {"description": "Updated description for this site."}}, "update_both": {"summary": "Update label and description", "value": {"label": "My Updated Site", "description": "Updated description for this site."}}}}}}, "responses": {"200": {"description": "Site update accepted", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site update started.", "description": "Confirmation message indicating site update has been initiated"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites/12345678-1234-1234-1234-123456789012"}}, "message": "Site update started."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Site_Service_API_BearerAuth": []}]}, "delete": {"summary": "Deletes a site by its ID.", "operationId": "deleteSiteBySiteId", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sites:delete"}}}, "tags": ["Sites"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "example": "12345678-1234-1234-1234-123456789012"}, "description": "Unique identifier for the site"}], "responses": {"202": {"description": "Site deletion accepted", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site deleted.", "description": "Confirmation message indicating the site has been deleted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites/550e8400-e29b-41d4-a716-446655440002"}}, "message": "Site deleted."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Site_Service_API_BearerAuth": []}]}}, "/sites/{siteId}/actions/duplicate": {"post": {"summary": "Duplicates a site from another given site.", "operationId": "duplicateSiteBySiteId", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sites:duplicate"}}}, "tags": ["Sites"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "example": "12345678-1234-1234-1234-123456789012"}, "description": "Unique identifier for the site"}], "requestBody": {"description": "Site duplication request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"environment_mapping": {"type": "array", "items": {"type": "string", "pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-]+$", "description": "Environment mapping in the format 'sourceEnvId:targetEnvId'"}, "description": "Array of environment mappings. You must provide exactly one environment mapping. Each entry maps a source environment ID to a target environment ID, separated by a colon.\n", "minItems": 1, "maxItems": 1, "example": ["0ebce493-9d09-479d-a9a8-138a206fa687:a1b2c3d4-e5f6-7890-abcd-ef1234567890"]}, "site_name": {"type": "string", "description": "Machine name for the duplicated site. Must start with a lowercase letter and contain only lowercase letters and numbers. Maximum 14 characters.\n", "minLength": 1, "maxLength": 14, "pattern": "^[a-z][a-z0-9]*$", "example": "dupsite"}, "site_label": {"type": "string", "description": "Human-readable label for the duplicated site. Must only contain letters, numbers, and spaces. Maximum 50 characters.\n", "minLength": 1, "maxLength": 50, "example": "Duplicated Site"}, "site_id": {"type": "string", "format": "uuid", "description": "An optional explicit UUID for the new duplicated site. A UUID is generated automatically if omitted.", "example": "f1a2b3c4-d5e6-7890-abcd-ef1234567890"}, "hook_argument": {"type": "string", "description": "Optional hook argument to pass to the duplication process.", "example": "--verbose"}}, "required": ["environment_mapping", "site_name", "site_label"], "additionalProperties": false}, "examples": {"duplicate_basic": {"summary": "Duplicate a site with required fields", "description": "Duplicates a site with a single environment mapping", "value": {"environment_mapping": ["0ebce493-9d09-479d-a9a8-138a206fa687:a1b2c3d4-e5f6-7890-abcd-ef1234567890"], "site_name": "dupsite", "site_label": "Duplicated Site"}}, "duplicate_with_options": {"summary": "Duplicate a site with all options", "description": "Duplicates a site specifying a custom site ID and hook argument", "value": {"environment_mapping": ["0ebce493-9d09-479d-a9a8-138a206fa687:a1b2c3d4-e5f6-7890-abcd-ef1234567890"], "site_name": "duphook", "site_label": "Dup With Hook", "site_id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", "hook_argument": "my-hook-arg"}}}}}}, "responses": {"202": {"description": "Site duplication started", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site duplication started.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890"}, "parent": {"href": "https://api.acquia.com/v3/sites"}}, "message": "Site duplication started."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Site_Service_API_BearerAuth": []}]}}, "/sites/{siteId}/actions/recover": {"post": {"summary": "Recovers a site that is scheduled for deletion", "operationId": "recoverSiteBySiteId", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sites:recover"}}}, "tags": ["Sites"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "example": "12345678-1234-1234-1234-123456789012"}, "description": "Unique identifier for the site"}], "responses": {"202": {"description": "Site recovery started", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site recovery started.", "description": "Confirmation message indicating the site recovery has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites/11111111-1111-1111-1111-111111111111"}, "parent": {"href": "https://api.acquia.com/v3/sites"}}, "message": "Site recovery started."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Site_Service_API_BearerAuth": []}]}}, "/sites/{siteId}/actions/schedule-delete": {"post": {"summary": "Schedules a site for deletion", "operationId": "scheduleDeleteSiteBySiteId", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sites:schedule-delete"}}}, "tags": ["Sites"], "parameters": [{"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "example": "12345678-1234-1234-1234-123456789012"}, "description": "Unique identifier for the site"}], "responses": {"202": {"description": "Site deletion scheduled", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Site deletion scheduled.", "description": "Confirmation message indicating the site deletion has been scheduled."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites/550e8400-e29b-41d4-a716-446655440002"}, "parent": {"href": "https://api.acquia.com/v3/sites"}}, "message": "Site deletion scheduled."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Site_Service_API_BearerAuth": []}]}}, "/codebases/{codebaseId}/sites": {"get": {"summary": "Retrieves a list of sites associated with a codebase.", "operationId": "getSitesByCodebaseId", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:list-sites"}}}, "tags": ["Sites"], "parameters": [{"name": "codebaseId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "example": "550e8400-e29b-41d4-a716-446655441212"}, "description": "Unique identifier for the codebase"}, {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}, {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "description": "A Site resource", "properties": {"id": {"type": "string", "description": "The unique identifier of the site", "pattern": "^[a-zA-Z0-9-]+$", "example": "12345678-1234-1234-1234-123456789012"}, "name": {"type": "string", "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", "minLength": 1, "maxLength": 14, "pattern": "^[a-z][a-z0-9]*$", "example": "mysite"}, "label": {"type": "string", "description": "The human-readable label of the site", "minLength": 1, "maxLength": 50, "example": "My Site 1"}, "description": {"type": "string", "description": "A description of the site", "maxLength": 512, "example": "A production site for the marketing team."}, "codebase_id": {"type": "string", "description": "The unique identifier of the codebase this site belongs to", "pattern": "^[a-zA-Z0-9-]+$", "example": "550e8400-e29b-41d4-a716-446655441210"}, "status": {"type": "string", "description": "The current lifecycle status of the site. ready indicates the site is active and operational. marked-for-deletion indicates the site has been scheduled for deletion and can still be recovered.\n", "enum": ["ready", "marked-for-deletion"], "example": "ready"}, "delete_at": {"type": "string", "format": "date-time", "description": "ISO 8601 datetime indicating when the site is scheduled for deletion. Only present when status is marked-for-deletion.", "example": "2025-06-15T00:00:00Z"}}, "required": ["id", "name", "label", "codebase_id", "status"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"site_collection": {"summary": "Site collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/sites?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/sites?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/sites?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/sites?limit=2&offset=0{&sort}", "templated": true}, "next": {"href": "https://api.acquia.com/v3/sites?limit=2&offset=2"}}, "count": 2, "total": 4, "pagination": {"total": 4, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", "name": "mysite", "label": "My Site", "description": "A description of my site.", "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", "status": "ready", "_links": {"self": {"href": "https://api.acquia.com/v3/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890"}}}, {"id": "e2b3c4d5-f6a7-8901-bcde-f12345678901", "name": "anothersite", "label": "Another Site", "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", "status": "marked-for-deletion", "delete_at": "2025-01-01T00:00:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/sites/e2b3c4d5-f6a7-8901-bcde-f12345678901"}}}]}}}}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Site_Service_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionId}/sites": {"get": {"summary": "Retrieves a list of sites associated with a subscription.", "operationId": "getSitesBySubscriptionId", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:list-sites"}}}, "tags": ["Sites"], "parameters": [{"name": "subscriptionId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "example": "550e8300-e29b-41d4-a716-446655441212"}, "description": "Unique identifier for the subscription"}, {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}, {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "description": "A Site resource", "properties": {"id": {"type": "string", "description": "The unique identifier of the site", "pattern": "^[a-zA-Z0-9-]+$", "example": "12345678-1234-1234-1234-123456789012"}, "name": {"type": "string", "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", "minLength": 1, "maxLength": 14, "pattern": "^[a-z][a-z0-9]*$", "example": "mysite"}, "label": {"type": "string", "description": "The human-readable label of the site", "minLength": 1, "maxLength": 50, "example": "My Site 1"}, "description": {"type": "string", "description": "A description of the site", "maxLength": 512, "example": "A production site for the marketing team."}, "codebase_id": {"type": "string", "description": "The unique identifier of the codebase this site belongs to", "pattern": "^[a-zA-Z0-9-]+$", "example": "550e8400-e29b-41d4-a716-446655441210"}, "status": {"type": "string", "description": "The current lifecycle status of the site. ready indicates the site is active and operational. marked-for-deletion indicates the site has been scheduled for deletion and can still be recovered.\n", "enum": ["ready", "marked-for-deletion"], "example": "ready"}, "delete_at": {"type": "string", "format": "date-time", "description": "ISO 8601 datetime indicating when the site is scheduled for deletion. Only present when status is marked-for-deletion.", "example": "2025-06-15T00:00:00Z"}}, "required": ["id", "name", "label", "codebase_id", "status"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"site_collection": {"summary": "Site collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/sites?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/sites?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/sites?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/sites?limit=2&offset=0{&sort}", "templated": true}, "next": {"href": "https://api.acquia.com/v3/sites?limit=2&offset=2"}}, "count": 2, "total": 4, "pagination": {"total": 4, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", "name": "mysite", "label": "My Site", "description": "A description of my site.", "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", "status": "ready", "_links": {"self": {"href": "https://api.acquia.com/v3/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890"}}}, {"id": "e2b3c4d5-f6a7-8901-bcde-f12345678901", "name": "anothersite", "label": "Another Site", "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", "status": "marked-for-deletion", "delete_at": "2025-01-01T00:00:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/sites/e2b3c4d5-f6a7-8901-bcde-f12345678901"}}}]}}}}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Site_Service_API_BearerAuth": []}]}}, "/environments/{environmentId}/sites": {"get": {"summary": "Retrieves a list of sites associated with an environment.", "operationId": "getSitesByEnvironmentId", "x-acquia-operation": {"provider": {"service": "site-service-php"}}, "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "environments:list-sites"}}}, "tags": ["Sites"], "parameters": [{"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "example": "0ebce493-9d09-479d-a9a8-138a206fa687"}, "description": "Unique identifier for the environment"}, {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}, {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "description": "A Site resource", "properties": {"id": {"type": "string", "description": "The unique identifier of the site", "pattern": "^[a-zA-Z0-9-]+$", "example": "12345678-1234-1234-1234-123456789012"}, "name": {"type": "string", "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", "minLength": 1, "maxLength": 14, "pattern": "^[a-z][a-z0-9]*$", "example": "mysite"}, "label": {"type": "string", "description": "The human-readable label of the site", "minLength": 1, "maxLength": 50, "example": "My Site 1"}, "description": {"type": "string", "description": "A description of the site", "maxLength": 512, "example": "A production site for the marketing team."}, "codebase_id": {"type": "string", "description": "The unique identifier of the codebase this site belongs to", "pattern": "^[a-zA-Z0-9-]+$", "example": "550e8400-e29b-41d4-a716-446655441210"}, "status": {"type": "string", "description": "The current lifecycle status of the site. ready indicates the site is active and operational. marked-for-deletion indicates the site has been scheduled for deletion and can still be recovered.\n", "enum": ["ready", "marked-for-deletion"], "example": "ready"}, "delete_at": {"type": "string", "format": "date-time", "description": "ISO 8601 datetime indicating when the site is scheduled for deletion. Only present when status is marked-for-deletion.", "example": "2025-06-15T00:00:00Z"}}, "required": ["id", "name", "label", "codebase_id", "status"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"site_collection": {"summary": "Site collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/sites?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/sites?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/sites?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/sites?limit=2&offset=0{&sort}", "templated": true}, "next": {"href": "https://api.acquia.com/v3/sites?limit=2&offset=2"}}, "count": 2, "total": 4, "pagination": {"total": 4, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", "name": "mysite", "label": "My Site", "description": "A description of my site.", "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", "status": "ready", "_links": {"self": {"href": "https://api.acquia.com/v3/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890"}}}, {"id": "e2b3c4d5-f6a7-8901-bcde-f12345678901", "name": "anothersite", "label": "Another Site", "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", "status": "marked-for-deletion", "delete_at": "2025-01-01T00:00:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/sites/e2b3c4d5-f6a7-8901-bcde-f12345678901"}}}]}}}}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Site_Service_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionId}/sso-domains": {"post": {"operationId": "createSsoDomainBySubscriptionId", "summary": "Create a new domain for federated SSO.", "tags": ["Domains"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:create-sso-domain"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"name": "subscriptionId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the subscription."}], "requestBody": {"description": "Request body for creating a new domain.", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"domain": {"type": "string", "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", "description": "The domain name to create (e.g., \"acme.com\")."}}, "required": ["domain"], "additionalProperties": false}, "example": {"domain": "acme.com"}}}}, "responses": {"202": {"description": "Domain creation accepted. The domain is being added to your subscription. To complete verification, add the provided DNS TXT record and call the verify action.", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"const": "Domain creation has been accepted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-456"}}, "message": "Domain creation has been accepted."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}, "get": {"summary": "Return a list of domains for a subscription.", "operationId": "getSsoDomainsBySubscriptionId", "tags": ["Domains"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:list-sso-domains"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"name": "subscriptionId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the subscription."}, {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}, {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "properties": {"domain_id": {"type": "string", "description": "Unique identifier for the domain."}, "domain": {"type": "string", "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", "description": "The domain name (e.g., \"acme.com\")."}, "subscription_id": {"type": "string", "description": "Unique identifier for the subscription that the domain belongs to."}, "health": {"type": "object", "description": "The overall verification health of the domain. Uses the same code semantics as the platform email domain-verification system: `200` verified, `202` verification pending or in progress, `404` DNS record not found or could not be validated.", "properties": {"code": {"type": "string", "enum": ["200", "202", "404"], "description": "Machine-readable verification status code. `200` \u2014 verified. `202` \u2014 verification pending or in progress; retry after propagation. `404` \u2014 DNS TXT record not found or does not match expected value."}, "summary": {"type": "string", "description": "Short human-readable label for the verification state (e.g., \"Verified\", \"Verification pending\", \"Missing DNS record\")."}, "details": {"type": "string", "description": "Actionable explanation of the current state. For `404`, describes what was checked and what the customer should do next."}}, "required": ["code", "summary", "details"]}, "verification_record": {"type": "object", "description": "DNS TXT record the customer must publish to verify domain ownership.", "properties": {"type": {"type": "string", "const": "TXT", "description": "DNS record type."}, "host": {"type": "string", "description": "DNS record host name."}, "value": {"type": "string", "description": "Expected DNS record value."}, "health": {"type": "object", "description": "Verification health specific to this DNS record. Anchors the failure reason to the exact record the customer needs to fix, matching the per-record health pattern used in platform email domain verification.", "properties": {"code": {"type": "string", "enum": ["200", "202", "404"], "description": "`200` \u2014 record found and value matches. `202` \u2014 check in progress. `404` \u2014 record not found or value does not match."}, "summary": {"type": "string", "description": "Short human-readable label for this record's verification state."}, "details": {"type": "string", "description": "Actionable explanation; for `404`, states what was checked and what to fix."}}, "required": ["code", "summary", "details"]}}, "required": ["type", "host", "value", "health"]}, "verified_at": {"type": "string", "format": "date-time", "description": "Timestamp when the domain was successfully verified. Present only when `health.code` is `200`."}}, "required": ["domain_id", "domain", "subscription_id", "health", "verification_record"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"domain_response": {"summary": "Domain collection with pagination", "description": "Two domains in different states: one verified and in use by a policy (carries `identity_providers` link), one pending verification (carries `verify` link).", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?limit=2&offset=0{&sort}", "templated": true}, "next": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?offset=2&limit=2"}}, "count": 2, "total": 3, "pagination": {"total": 3, "limit": 2, "offset": 0}, "_embedded": {"items": [{"domain_id": "dom-456", "domain": "acme.com", "subscription_id": "sub-123", "health": {"code": "200", "summary": "Verified", "details": "The DNS TXT record has been confirmed and the domain is verified."}, "verification_record": {"type": "TXT", "host": "_acquia-challenge.acme.com", "value": "abc123def456", "health": {"code": "200", "summary": "Verified", "details": "The TXT record at _acquia-challenge.acme.com matches the expected value."}}, "verified_at": "2026-04-15T10:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-456"}, "identity_providers": {"href": "https://api.acquia.com/v3/identity-providers?filter=domain_id%3Ddom-456"}}}, {"domain_id": "dom-789", "domain": "acme.corp", "subscription_id": "sub-123", "health": {"code": "202", "summary": "Verification pending", "details": "Acquia is waiting to confirm the DNS TXT record. Ensure the record has been published and allow time for DNS propagation, then retry verification."}, "verification_record": {"type": "TXT", "host": "_acquia-challenge.acme.corp", "value": "xyz789abc123", "health": {"code": "202", "summary": "Check in progress", "details": "The TXT record check has not yet completed."}}, "_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-789"}, "verify": {"href": "https://api.acquia.com/v3/sso-domains/dom-789/actions/verify"}}}]}}}}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionId}/identity-providers": {"post": {"operationId": "createIdentityProviderBySubscriptionId", "summary": "Create a new Identity Provider.", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:create-identity-provider"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"name": "subscriptionId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the subscription."}], "requestBody": {"description": "Request body for creating a new Identity Provider.", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"idp_entity_id": {"type": "string", "format": "uri", "description": "The Identity Provider Entity ID."}, "label": {"type": "string", "description": "The name of the Identity Provider."}, "sso_url": {"type": "string", "format": "uri", "description": "The SSO URL for this IdP."}, "certificate": {"type": "string", "description": "The certificate for this IdP."}}, "required": ["label", "idp_entity_id", "sso_url", "certificate"], "additionalProperties": false}, "example": {"label": "Acme Corporation Azure AD", "idp_entity_id": "https://idp.acme.com/saml", "sso_url": "https://acme.com/sso", "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----"}}}}, "responses": {"202": {"description": "Identity Provider creation initiated. The Identity Provider is being provisioned. Poll the Identity Provider resource to check when it becomes active.", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"const": "Identity Provider creation has been accepted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f"}}, "message": "Identity Provider creation has been accepted."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}, "get": {"summary": "Return a list of Identity Providers for a subscription.", "operationId": "getIdentityProvidersBySubscriptionId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:list-identity-providers"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"name": "subscriptionId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the subscription."}, {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}, {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "properties": {"identity_provider_id": {"type": "string", "description": "Unique identifier for the identity provider."}, "label": {"type": "string", "description": "The name of the Identity Provider."}, "subscription_id": {"type": "string", "description": "Unique identifier for the subscription that the Identity Provider belongs to."}, "idp_entity_id": {"type": "string", "format": "uri", "description": "The Identity Provider Entity ID."}, "sp_entity_id": {"type": "string", "format": "uri", "description": "The Service Provider Entity ID."}, "sso_url": {"type": "string", "format": "uri", "description": "The Single Sign-On URL for the Identity Provider."}, "certificate": {"type": "string", "description": "The X.509 certificate used for SAML authentication."}, "created_at": {"type": "string", "format": "date-time", "description": "Timestamp when the Identity Provider was created."}}, "required": ["identity_provider_id", "label", "subscription_id", "idp_entity_id", "sp_entity_id", "sso_url", "certificate", "created_at"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"identity_provider_response": {"summary": "Identity provider collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?limit=2&offset=2"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?offset=2{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?limit=2&offset=2{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?limit=2&offset=2{&sort}", "templated": true}, "prev": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?limit=2&offset=0"}, "next": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?offset=4&limit=2"}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"identity_provider_id": "908914ec-2354-4fb1-9298-637247eccc3a", "label": "Acme Corporation Azure AD", "subscription_id": "sub-123", "idp_entity_id": "https://idp.acme.com/saml", "sp_entity_id": "https://sp.acme.com/saml", "sso_url": "https://acme.com/sso", "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", "created_at": "2026-04-15T11:00:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a"}, "sso_policy": {"href": "https://api.acquia.com/v3/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a/policies/sso"}}}, {"identity_provider_id": "123456ec-2354-4fb1-9298-637247eccc3b", "label": "Acme Research Ping Identity", "subscription_id": "sub-123", "idp_entity_id": "https://idp-research.acme.com/saml", "sp_entity_id": "https://sp-research.acme.com/saml", "sso_url": "https://research.acme.com/sso", "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", "created_at": "2026-04-20T14:20:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/123456ec-2354-4fb1-9298-637247eccc3b"}, "sso_policy": {"href": "https://api.acquia.com/v3/identity-providers/123456ec-2354-4fb1-9298-637247eccc3b/policies/sso"}}}]}}}}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/sso-domains": {"get": {"summary": "Return a list of all accessible domains.", "operationId": "getSsoDomains", "tags": ["Domains"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sso-domains:list"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}, {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "properties": {"domain_id": {"type": "string", "description": "Unique identifier for the domain."}, "domain": {"type": "string", "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", "description": "The domain name (e.g., \"acme.com\")."}, "subscription_id": {"type": "string", "description": "Unique identifier for the subscription that the domain belongs to."}, "health": {"type": "object", "description": "The overall verification health of the domain. Uses the same code semantics as the platform email domain-verification system: `200` verified, `202` verification pending or in progress, `404` DNS record not found or could not be validated.", "properties": {"code": {"type": "string", "enum": ["200", "202", "404"], "description": "Machine-readable verification status code. `200` \u2014 verified. `202` \u2014 verification pending or in progress; retry after propagation. `404` \u2014 DNS TXT record not found or does not match expected value."}, "summary": {"type": "string", "description": "Short human-readable label for the verification state (e.g., \"Verified\", \"Verification pending\", \"Missing DNS record\")."}, "details": {"type": "string", "description": "Actionable explanation of the current state. For `404`, describes what was checked and what the customer should do next."}}, "required": ["code", "summary", "details"]}, "verification_record": {"type": "object", "description": "DNS TXT record the customer must publish to verify domain ownership.", "properties": {"type": {"type": "string", "const": "TXT", "description": "DNS record type."}, "host": {"type": "string", "description": "DNS record host name."}, "value": {"type": "string", "description": "Expected DNS record value."}, "health": {"type": "object", "description": "Verification health specific to this DNS record. Anchors the failure reason to the exact record the customer needs to fix, matching the per-record health pattern used in platform email domain verification.", "properties": {"code": {"type": "string", "enum": ["200", "202", "404"], "description": "`200` \u2014 record found and value matches. `202` \u2014 check in progress. `404` \u2014 record not found or value does not match."}, "summary": {"type": "string", "description": "Short human-readable label for this record's verification state."}, "details": {"type": "string", "description": "Actionable explanation; for `404`, states what was checked and what to fix."}}, "required": ["code", "summary", "details"]}}, "required": ["type", "host", "value", "health"]}, "verified_at": {"type": "string", "format": "date-time", "description": "Timestamp when the domain was successfully verified. Present only when `health.code` is `200`."}}, "required": ["domain_id", "domain", "subscription_id", "health", "verification_record"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"domain_response": {"summary": "Domain collection with pagination", "description": "Two domains in different states: one verified and in use by a policy (carries `identity_providers` link), one pending verification (carries `verify` link).", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?limit=2&offset=0{&sort}", "templated": true}, "next": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?offset=2&limit=2"}}, "count": 2, "total": 3, "pagination": {"total": 3, "limit": 2, "offset": 0}, "_embedded": {"items": [{"domain_id": "dom-456", "domain": "acme.com", "subscription_id": "sub-123", "health": {"code": "200", "summary": "Verified", "details": "The DNS TXT record has been confirmed and the domain is verified."}, "verification_record": {"type": "TXT", "host": "_acquia-challenge.acme.com", "value": "abc123def456", "health": {"code": "200", "summary": "Verified", "details": "The TXT record at _acquia-challenge.acme.com matches the expected value."}}, "verified_at": "2026-04-15T10:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-456"}, "identity_providers": {"href": "https://api.acquia.com/v3/identity-providers?filter=domain_id%3Ddom-456"}}}, {"domain_id": "dom-789", "domain": "acme.corp", "subscription_id": "sub-123", "health": {"code": "202", "summary": "Verification pending", "details": "Acquia is waiting to confirm the DNS TXT record. Ensure the record has been published and allow time for DNS propagation, then retry verification."}, "verification_record": {"type": "TXT", "host": "_acquia-challenge.acme.corp", "value": "xyz789abc123", "health": {"code": "202", "summary": "Check in progress", "details": "The TXT record check has not yet completed."}}, "_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-789"}, "verify": {"href": "https://api.acquia.com/v3/sso-domains/dom-789/actions/verify"}}}]}}}}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/sso-domains/{domainId}": {"get": {"summary": "Return details about a specific domain.", "operationId": "findSsoDomainBySsoDomainId", "tags": ["Domains"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sso-domains:find"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"name": "domainId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the domain."}], "responses": {"200": {"description": "OK. The `_links` object always contains `self`. Additional links are state-conditional: `verify` is present when `health.code` is `202` or `404` (POST it to initiate or retry DNS TXT record verification); `identity_providers` is present when the domain is referenced by one or more Identity Provider policies (follows to a filtered list of those IdPs; when present the domain cannot be deleted \u2014 remove it from all policies first).", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "properties": {"domain_id": {"type": "string", "description": "Unique identifier for the domain."}, "domain": {"type": "string", "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", "description": "The domain name (e.g., \"acme.com\")."}, "subscription_id": {"type": "string", "description": "Unique identifier for the subscription that the domain belongs to."}, "health": {"type": "object", "description": "The overall verification health of the domain. Uses the same code semantics as the platform email domain-verification system: `200` verified, `202` verification pending or in progress, `404` DNS record not found or could not be validated.", "properties": {"code": {"type": "string", "enum": ["200", "202", "404"], "description": "Machine-readable verification status code. `200` \u2014 verified. `202` \u2014 verification pending or in progress; retry after propagation. `404` \u2014 DNS TXT record not found or does not match expected value."}, "summary": {"type": "string", "description": "Short human-readable label for the verification state (e.g., \"Verified\", \"Verification pending\", \"Missing DNS record\")."}, "details": {"type": "string", "description": "Actionable explanation of the current state. For `404`, describes what was checked and what the customer should do next."}}, "required": ["code", "summary", "details"]}, "verification_record": {"type": "object", "description": "DNS TXT record the customer must publish to verify domain ownership.", "properties": {"type": {"type": "string", "const": "TXT", "description": "DNS record type."}, "host": {"type": "string", "description": "DNS record host name."}, "value": {"type": "string", "description": "Expected DNS record value."}, "health": {"type": "object", "description": "Verification health specific to this DNS record. Anchors the failure reason to the exact record the customer needs to fix, matching the per-record health pattern used in platform email domain verification.", "properties": {"code": {"type": "string", "enum": ["200", "202", "404"], "description": "`200` \u2014 record found and value matches. `202` \u2014 check in progress. `404` \u2014 record not found or value does not match."}, "summary": {"type": "string", "description": "Short human-readable label for this record's verification state."}, "details": {"type": "string", "description": "Actionable explanation; for `404`, states what was checked and what to fix."}}, "required": ["code", "summary", "details"]}}, "required": ["type", "host", "value", "health"]}, "verified_at": {"type": "string", "format": "date-time", "description": "Timestamp when the domain was successfully verified. Present only when `health.code` is `200`."}}, "required": ["domain_id", "domain", "subscription_id", "health", "verification_record"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "examples": {"pending_verification": {"summary": "Domain awaiting DNS verification", "description": "A newly created domain whose DNS TXT record has not yet been confirmed. `health.code` is `202`; the `verify` link is present so the client can trigger or retry the check. `identity_providers` is absent because no policy can reference an unverified domain.", "value": {"domain_id": "dom-789", "domain": "acme.corp", "subscription_id": "sub-123", "health": {"code": "202", "summary": "Verification pending", "details": "Acquia is waiting to confirm the DNS TXT record. Ensure the record has been published and allow time for DNS propagation, then retry verification."}, "verification_record": {"type": "TXT", "host": "_acquia-challenge.acme.corp", "value": "xyz789abc123", "health": {"code": "202", "summary": "Check in progress", "details": "The TXT record check has not yet completed."}}, "_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-789"}, "verify": {"href": "https://api.acquia.com/v3/sso-domains/dom-789/actions/verify"}}}}, "failed_verification": {"summary": "Domain verification failed \u2014 DNS record not found", "description": "A domain whose TXT record could not be found. `health.code` is `404`; `details` names the exact record to check. The `verify` link is present so the client can retry after fixing the DNS entry.", "value": {"domain_id": "dom-789", "domain": "acme.corp", "subscription_id": "sub-123", "health": {"code": "404", "summary": "Missing DNS record", "details": "Acquia could not verify the presence of the required TXT DNS record at _acquia-challenge.acme.corp. Ensure the record is published with the correct value and retry verification."}, "verification_record": {"type": "TXT", "host": "_acquia-challenge.acme.corp", "value": "xyz789abc123", "health": {"code": "404", "summary": "Missing DNS record", "details": "The TXT record at _acquia-challenge.acme.corp was not found or does not match the expected value xyz789abc123."}}, "_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-789"}, "verify": {"href": "https://api.acquia.com/v3/sso-domains/dom-789/actions/verify"}}}}, "verified_in_use": {"summary": "Verified domain referenced by an Identity Provider policy", "description": "A verified domain enforced by at least one Identity Provider policy. `health.code` is `200`; `verify` is absent; `identity_providers` is present. A DELETE on this domain will return 409 until the domain is removed from all policies.", "value": {"domain_id": "dom-456", "domain": "acme.com", "subscription_id": "sub-123", "health": {"code": "200", "summary": "Verified", "details": "The DNS TXT record has been confirmed and the domain is verified."}, "verification_record": {"type": "TXT", "host": "_acquia-challenge.acme.com", "value": "abc123def456", "health": {"code": "200", "summary": "Verified", "details": "The TXT record at _acquia-challenge.acme.com matches the expected value."}}, "verified_at": "2026-04-15T10:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-456"}, "identity_providers": {"href": "https://api.acquia.com/v3/identity-providers?filter=domain_id%3Ddom-456"}}}}}}}, "links": {"self": {"operationId": "findSsoDomainBySsoDomainId", "parameters": {"domainId": "$response.body#/domain_id"}}, "delete": {"operationId": "deleteSsoDomainBySsoDomainId", "parameters": {"domainId": "$response.body#/domain_id"}}, "verify": {"operationId": "verifySsoDomainBySsoDomainId", "parameters": {"domainId": "$response.body#/domain_id"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}, "delete": {"summary": "Delete a domain.", "operationId": "deleteSsoDomainBySsoDomainId", "tags": ["Domains"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sso-domains:delete"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"name": "domainId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the domain."}], "responses": {"202": {"description": "Domain deletion accepted. The domain is being deleted.", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"const": "Domain deletion has been accepted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-456"}}, "message": "Domain deletion has been accepted."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/sso-domains/{domainId}/actions/verify": {"post": {"summary": "Verify domain ownership via DNS TXT record.", "operationId": "verifySsoDomainBySsoDomainId", "tags": ["Domains"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "sso-domains:verify"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"name": "domainId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the domain."}], "responses": {"202": {"description": "Domain verification process initiated. The system will validate the DNS TXT record to confirm domain ownership. Poll the domain resource and check `health.code` to track progress: `202` in progress, `200` verified, `404` record not found.", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Domain verification has been accepted.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-456"}}, "message": "Domain verification has been accepted."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/identity-providers": {"get": {"summary": "Return a list of all accessible Identity Providers.", "operationId": "getIdentityProviders", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:list"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}, {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "properties": {"identity_provider_id": {"type": "string", "description": "Unique identifier for the identity provider."}, "label": {"type": "string", "description": "The name of the Identity Provider."}, "subscription_id": {"type": "string", "description": "Unique identifier for the subscription that the Identity Provider belongs to."}, "idp_entity_id": {"type": "string", "format": "uri", "description": "The Identity Provider Entity ID."}, "sp_entity_id": {"type": "string", "format": "uri", "description": "The Service Provider Entity ID."}, "sso_url": {"type": "string", "format": "uri", "description": "The Single Sign-On URL for the Identity Provider."}, "certificate": {"type": "string", "description": "The X.509 certificate used for SAML authentication."}, "created_at": {"type": "string", "format": "date-time", "description": "Timestamp when the Identity Provider was created."}}, "required": ["identity_provider_id", "label", "subscription_id", "idp_entity_id", "sp_entity_id", "sso_url", "certificate", "created_at"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"identity_provider_response": {"summary": "Identity provider collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?limit=2&offset=2"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?offset=2{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?limit=2&offset=2{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?limit=2&offset=2{&sort}", "templated": true}, "prev": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?limit=2&offset=0"}, "next": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?offset=4&limit=2"}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"identity_provider_id": "908914ec-2354-4fb1-9298-637247eccc3a", "label": "Acme Corporation Azure AD", "subscription_id": "sub-123", "idp_entity_id": "https://idp.acme.com/saml", "sp_entity_id": "https://sp.acme.com/saml", "sso_url": "https://acme.com/sso", "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", "created_at": "2026-04-15T11:00:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a"}, "sso_policy": {"href": "https://api.acquia.com/v3/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a/policies/sso"}}}, {"identity_provider_id": "123456ec-2354-4fb1-9298-637247eccc3b", "label": "Acme Research Ping Identity", "subscription_id": "sub-123", "idp_entity_id": "https://idp-research.acme.com/saml", "sp_entity_id": "https://sp-research.acme.com/saml", "sso_url": "https://research.acme.com/sso", "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", "created_at": "2026-04-20T14:20:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/123456ec-2354-4fb1-9298-637247eccc3b"}, "sso_policy": {"href": "https://api.acquia.com/v3/identity-providers/123456ec-2354-4fb1-9298-637247eccc3b/policies/sso"}}}]}}}}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/identity-providers/{identityProviderId}": {"get": {"summary": "Return details about a specific Identity Provider.", "operationId": "findIdentityProviderByIdentityProviderId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:find"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"name": "identityProviderId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the identity provider."}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "properties": {"identity_provider_id": {"type": "string", "description": "Unique identifier for the identity provider."}, "label": {"type": "string", "description": "The name of the Identity Provider."}, "subscription_id": {"type": "string", "description": "Unique identifier for the subscription that the Identity Provider belongs to."}, "idp_entity_id": {"type": "string", "format": "uri", "description": "The Identity Provider Entity ID."}, "sp_entity_id": {"type": "string", "format": "uri", "description": "The Service Provider Entity ID."}, "sso_url": {"type": "string", "format": "uri", "description": "The Single Sign-On URL for the Identity Provider."}, "certificate": {"type": "string", "description": "The X.509 certificate used for SAML authentication."}, "created_at": {"type": "string", "format": "date-time", "description": "Timestamp when the Identity Provider was created."}}, "required": ["identity_provider_id", "label", "subscription_id", "idp_entity_id", "sp_entity_id", "sso_url", "certificate", "created_at"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"identity_provider_id": "908914ec-2354-4fb1-9298-637247eccc3a", "label": "Acme Corporation Azure AD", "subscription_id": "sub-123", "idp_entity_id": "https://idp.acme.com/saml", "sp_entity_id": "https://sp.acme.com/saml", "sso_url": "https://acme.com/sso", "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", "created_at": "2026-04-15T11:00:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a"}, "sso_policy": {"href": "https://api.acquia.com/v3/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a/policies/sso"}}}}}, "links": {"self": {"operationId": "findIdentityProviderByIdentityProviderId", "parameters": {"identityProviderId": "$response.body#/identity_provider_id"}}, "update": {"operationId": "updateIdentityProviderByIdentityProviderId", "parameters": {"identityProviderId": "$response.body#/identity_provider_id"}}, "delete": {"operationId": "deleteIdentityProviderByIdentityProviderId", "parameters": {"identityProviderId": "$response.body#/identity_provider_id"}}, "enable_sso_policy": {"operationId": "enableIdentityProviderSSOPolicyByIdentityProviderId", "parameters": {"identityProviderId": "$response.body#/identity_provider_id"}}, "disable_sso_policy": {"operationId": "disableIdentityProviderSSOPolicyByIdentityProviderId", "parameters": {"identityProviderId": "$response.body#/identity_provider_id"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}, "put": {"summary": "Updates an Identity Provider.", "operationId": "updateIdentityProviderByIdentityProviderId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:update"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"name": "identityProviderId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the identity provider."}], "requestBody": {"description": "Request body for updating an existing Identity Provider.", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"label": {"type": "string", "description": "The name of the Identity Provider."}, "certificate": {"type": "string", "description": "The X.509 certificate used for SAML authentication."}, "sso_url": {"type": "string", "format": "uri", "description": "The Single Sign-On URL for the Identity Provider."}, "idp_entity_id": {"type": "string", "format": "uri", "description": "The Identity Provider Entity ID."}}, "additionalProperties": false, "minProperties": 1}, "example": {"label": "Updated Acme Corporation Azure AD", "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", "sso_url": "https://updatedacme.com/sso", "idp_entity_id": "https://idp2.acme.com/saml"}}}}, "responses": {"202": {"description": "Identity Provider update initiated. The Identity Provider configuration changes are being applied. Poll the Identity Provider resource to verify the changes.", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"const": "Identity Provider update has been accepted."}}}]}, "example": {"message": "Identity Provider update has been accepted.", "_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f"}}}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}, "delete": {"summary": "Deletes an Identity Provider.", "operationId": "deleteIdentityProviderByIdentityProviderId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:delete"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"name": "identityProviderId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the identity provider."}], "responses": {"202": {"description": "Identity Provider deletion accepted. The Identity Provider is being deleted.", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"const": "Identity Provider deletion has been accepted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f"}}, "message": "Identity Provider deletion has been accepted."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/identity-providers/{identityProviderId}/policies/sso": {"get": {"summary": "Get the SSO policy for an Identity Provider.", "operationId": "findIdentityProviderSSOPolicyByIdentityProviderId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:find-sso-policy"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"name": "identityProviderId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the identity provider."}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "description": "SSO policy that enforces an Identity Provider for specific domains.", "properties": {"status": {"type": "string", "enum": ["enabled", "disabled"], "default": "disabled", "description": "The status of the SSO policy. When enabled, the policy enforces SSO for the specified domains. Defaults to disabled on creation."}, "_embedded": {"type": "object", "description": "Embedded resources for the SSO policy.", "properties": {"domains": {"type": "array", "description": "The SSO domains enforced by this policy, each with a self link back to the authoritative SsoDomain resource.", "items": {"allOf": [{"type": "object", "properties": {"domain_id": {"type": "string", "description": "Unique identifier for the domain."}, "domain": {"type": "string", "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", "description": "The domain name (e.g., \"acme.com\")."}, "subscription_id": {"type": "string", "description": "Unique identifier for the subscription that the domain belongs to."}, "health": {"type": "object", "description": "The overall verification health of the domain. Uses the same code semantics as the platform email domain-verification system: `200` verified, `202` verification pending or in progress, `404` DNS record not found or could not be validated.", "properties": {"code": {"type": "string", "enum": ["200", "202", "404"], "description": "Machine-readable verification status code. `200` \u2014 verified. `202` \u2014 verification pending or in progress; retry after propagation. `404` \u2014 DNS TXT record not found or does not match expected value."}, "summary": {"type": "string", "description": "Short human-readable label for the verification state (e.g., \"Verified\", \"Verification pending\", \"Missing DNS record\")."}, "details": {"type": "string", "description": "Actionable explanation of the current state. For `404`, describes what was checked and what the customer should do next."}}, "required": ["code", "summary", "details"]}, "verification_record": {"type": "object", "description": "DNS TXT record the customer must publish to verify domain ownership.", "properties": {"type": {"type": "string", "const": "TXT", "description": "DNS record type."}, "host": {"type": "string", "description": "DNS record host name."}, "value": {"type": "string", "description": "Expected DNS record value."}, "health": {"type": "object", "description": "Verification health specific to this DNS record. Anchors the failure reason to the exact record the customer needs to fix, matching the per-record health pattern used in platform email domain verification.", "properties": {"code": {"type": "string", "enum": ["200", "202", "404"], "description": "`200` \u2014 record found and value matches. `202` \u2014 check in progress. `404` \u2014 record not found or value does not match."}, "summary": {"type": "string", "description": "Short human-readable label for this record's verification state."}, "details": {"type": "string", "description": "Actionable explanation; for `404`, states what was checked and what to fix."}}, "required": ["code", "summary", "details"]}}, "required": ["type", "host", "value", "health"]}, "verified_at": {"type": "string", "format": "date-time", "description": "Timestamp when the domain was successfully verified. Present only when `health.code` is `200`."}}, "required": ["domain_id", "domain", "subscription_id", "health", "verification_record"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["domains"]}}, "required": ["status", "_embedded"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"status": "disabled", "_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso"}}, "_embedded": {"domains": [{"domain_id": "dom-456", "domain": "acme.com", "subscription_id": "sub-123", "health": {"code": "200", "summary": "Verified", "details": "The DNS TXT record has been confirmed and the domain is verified."}, "verification_record": {"type": "TXT", "host": "_acquia-challenge.acme.com", "value": "abc123def456", "health": {"code": "200", "summary": "Verified", "details": "The TXT record at _acquia-challenge.acme.com matches the expected value."}}, "verified_at": "2026-04-15T10:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-456"}, "identity_providers": {"href": "https://api.acquia.com/v3/identity-providers?filter=domain_id%3Ddom-456"}}}, {"domain_id": "dom-789", "domain": "acme.corp", "subscription_id": "sub-123", "health": {"code": "200", "summary": "Verified", "details": "The DNS TXT record has been confirmed and the domain is verified."}, "verification_record": {"type": "TXT", "host": "_acquia-challenge.acme.corp", "value": "xyz789abc123", "health": {"code": "200", "summary": "Verified", "details": "The TXT record at _acquia-challenge.acme.corp matches the expected value."}}, "verified_at": "2026-04-20T09:00:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-789"}, "identity_providers": {"href": "https://api.acquia.com/v3/identity-providers?filter=domain_id%3Ddom-789"}}}]}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}, "post": {"summary": "Create the SSO policy for an Identity Provider.", "operationId": "createIdentityProviderSSOPolicyByIdentityProviderId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:create-sso-policy"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"name": "identityProviderId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the identity provider."}], "requestBody": {"description": "Request body for creating an SSO policy for an Identity Provider.", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"domain_ids": {"type": "array", "description": "List of verified domain IDs to enforce this Identity Provider for.", "items": {"type": "string", "description": "Reference to a verified SSO domain."}}}, "required": ["domain_ids"], "additionalProperties": false}, "example": {"domain_ids": ["dom-456", "dom-789"]}}}}, "responses": {"202": {"description": "SSO policy creation initiated. The policy is being activated. Poll the SSO policy resource to verify activation.", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"const": "SSO policy creation has been accepted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso"}}, "message": "SSO policy creation has been accepted."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}, "put": {"summary": "Update the SSO policy for an Identity Provider.", "operationId": "updateIdentityProviderSSOPolicyByIdentityProviderId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:update-sso-policy"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"name": "identityProviderId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the identity provider."}], "requestBody": {"description": "Request body for updating an SSO policy for an Identity Provider.", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"domain_ids": {"type": "array", "description": "List of verified domain IDs to enforce this Identity Provider for.", "items": {"type": "string", "description": "Reference to a verified SSO domain."}}}, "required": ["domain_ids"], "additionalProperties": false, "minProperties": 1}, "example": {"domain_ids": ["dom-456"]}}}}, "responses": {"202": {"description": "SSO policy update initiated. The policy changes are being applied. Poll the SSO policy resource to verify the changes.", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"const": "SSO policy update has been accepted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso"}}, "message": "SSO policy update has been accepted."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}, "delete": {"summary": "Delete the SSO policy for an Identity Provider.", "operationId": "deleteIdentityProviderSSOPolicyByIdentityProviderId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:delete-sso-policy"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"name": "identityProviderId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the identity provider."}], "responses": {"202": {"description": "SSO policy deletion initiated. The policy is being deactivated. Poll the Identity Provider resource to verify the policy has been removed.", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"const": "SSO policy deletion has been accepted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso"}}, "message": "SSO policy deletion has been accepted."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/identity-providers/{identityProviderId}/policies/sso/actions/enable": {"post": {"summary": "Enable the SSO policy for an Identity Provider.", "operationId": "enableIdentityProviderSSOPolicyByIdentityProviderId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:enable-sso-policy"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"name": "identityProviderId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the identity provider."}], "responses": {"202": {"description": "SSO policy enablement initiated. The policy is being enabled and will enforce domains. Poll the SSO policy resource to verify the status change.", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"const": "SSO policy enablement has been accepted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso"}}, "message": "SSO policy enablement has been accepted."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/identity-providers/{identityProviderId}/policies/sso/actions/disable": {"post": {"summary": "Disable the SSO policy for an Identity Provider.", "operationId": "disableIdentityProviderSSOPolicyByIdentityProviderId", "tags": ["Identity Providers"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "identity-providers:disable-sso-policy"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "identity-service"}}, "parameters": [{"name": "identityProviderId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the identity provider."}], "responses": {"202": {"description": "SSO policy disablement initiated. The policy is being disabled and will no longer enforce domains. Poll the SSO policy resource to verify the status change.", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"const": "SSO policy disablement has been accepted."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/9078ead6-dfc9-4868-8800-723fb6da706f/policies/sso"}}, "message": "SSO policy disablement has been accepted."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Federated_Authentication_API_BearerAuth": []}]}}, "/codebases": {"get": {"summary": "Retrieves a list of codebases accessible by the user.", "description": "Retrieves a paginated collection of codebases. Use the `filter` parameter to scope results by association.\n\nFilter syntax:\n- By application: `filter=application_id%3D` (e.g. `filter=application_id%3Dabc-123`)\n", "operationId": "getCodebases", "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:list"}, "mcp": {"enabled": false}, "ops": {"enabled": false}}}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "tags": ["Codebases"], "parameters": [{"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "properties": {"id": {"type": "string", "description": "Unique identifier for the codebase"}, "label": {"type": "string", "description": "Human-readable label for the codebase"}, "region": {"type": "string", "description": "AWS region of the codebase"}, "vcs_url": {"type": "string", "format": "uri", "description": "VCS repository URL"}, "repository_id": {"type": "string", "description": "VCS repository identifier"}, "created_at": {"type": "string", "format": "date-time", "description": "Creation timestamp"}, "updated_at": {"type": "string", "format": "date-time", "description": "Last update timestamp"}, "description": {"type": "string", "description": "Description of the codebase"}, "flags": {"type": "object", "properties": {"is_active": {"type": "boolean", "description": "Whether the codebase is active"}, "is_meo": {"type": "boolean", "description": "Whether the codebase is MEO"}}, "required": ["is_active", "is_meo"], "description": "Feature flags for the codebase"}, "hash": {"type": "string", "description": "Codebase hash"}, "applications_total": {"type": "integer", "description": "Total number of applications linked to this codebase"}}, "required": ["id", "label", "region", "vcs_url", "repository_id", "created_at", "updated_at", "flags", "hash", "applications_total"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"codebase_collection": {"summary": "Codebase collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases?limit=10&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/codebases?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/codebases?limit=10{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/codebases?limit=10&offset=0{&filter}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 10, "offset": 0}, "_embedded": {"items": [{"id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", "label": "my-codebase", "region": "us-east-1", "vcs_url": "https://github.com/acquia/my-codebase.git", "repository_id": "12345678", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z", "description": "Main production codebase", "flags": {"is_active": true, "is_meo": false}, "hash": "abc123def456", "applications_total": 3, "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4"}}}]}}}}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}}, "/codebases/{codebaseId}": {"get": {"summary": "Retrieves a codebase by its ID.", "operationId": "findCodebaseByCodebaseId", "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:find"}, "mcp": {"enabled": false}, "ops": {"enabled": false}}}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "tags": ["Codebases"], "parameters": [{"name": "codebaseId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the codebase."}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "properties": {"id": {"type": "string", "description": "Unique identifier for the codebase"}, "label": {"type": "string", "description": "Human-readable label for the codebase"}, "region": {"type": "string", "description": "AWS region of the codebase"}, "vcs_url": {"type": "string", "format": "uri", "description": "VCS repository URL"}, "repository_id": {"type": "string", "description": "VCS repository identifier"}, "created_at": {"type": "string", "format": "date-time", "description": "Creation timestamp"}, "updated_at": {"type": "string", "format": "date-time", "description": "Last update timestamp"}, "description": {"type": "string", "description": "Description of the codebase"}, "flags": {"type": "object", "properties": {"is_active": {"type": "boolean", "description": "Whether the codebase is active"}, "is_meo": {"type": "boolean", "description": "Whether the codebase is MEO"}}, "required": ["is_active", "is_meo"], "description": "Feature flags for the codebase"}, "hash": {"type": "string", "description": "Codebase hash"}, "applications_total": {"type": "integer", "description": "Total number of applications linked to this codebase"}}, "required": ["id", "label", "region", "vcs_url", "repository_id", "created_at", "updated_at", "flags", "hash", "applications_total"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", "label": "my-codebase", "region": "us-east-1", "vcs_url": "https://github.com/acquia/my-codebase.git", "repository_id": "12345678", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z", "description": "Main production codebase", "flags": {"is_active": true, "is_meo": false}, "hash": "abc123def456", "applications_total": 3, "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4"}}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}, "put": {"summary": "Updates a codebase by its ID.", "operationId": "updateCodebaseByCodebaseId", "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:update"}, "mcp": {"enabled": false}, "ops": {"enabled": false}}}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "tags": ["Codebases"], "parameters": [{"name": "codebaseId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the codebase."}], "requestBody": {"description": "Codebase update request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"label": {"type": "string", "description": "Human-readable label for the codebase"}, "description": {"type": "string", "description": "Description of the codebase"}}, "minProperties": 1, "additionalProperties": false}, "examples": {"update": {"summary": "Update a codebase", "description": "Updates an existing codebase's label and description", "value": {"label": "updated-codebase-label", "description": "Updated codebase description"}}}}}}, "responses": {"200": {"description": "Codebase updated", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Codebase updated.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4"}}, "message": "Codebase updated."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}, "delete": {"summary": "Deletes a codebase by its ID.", "operationId": "deleteCodebaseByCodebaseId", "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:delete"}, "mcp": {"enabled": false}, "ops": {"enabled": false}}}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "tags": ["Codebases"], "parameters": [{"name": "codebaseId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the codebase."}], "responses": {"200": {"description": "Codebase deleted", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Codebase deleted.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4"}}, "message": "Codebase deleted."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}}, "/codebases/{codebaseId}/references": {"get": {"summary": "Retrieves a list of git references for a codebase.", "operationId": "getReferencesByCodebaseId", "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:list-references"}, "mcp": {"enabled": false}, "ops": {"enabled": false}}}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "tags": ["Codebase References"], "parameters": [{"name": "codebaseId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the codebase."}, {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}], "responses": {"200": {"description": "A list of git references for the codebase", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "properties": {"id": {"type": "string", "description": "Unique identifier for the reference"}, "name": {"type": "string", "description": "Name of the git reference"}, "type": {"type": "string", "enum": ["branch", "tag"], "description": "Type of the git reference"}}, "required": ["id", "name", "type"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references?limit=10&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references?limit=10{&offset}", "templated": true}}, "count": 2, "total": 2, "pagination": {"total": 2, "limit": 10, "offset": 0}, "_embedded": {"items": [{"id": "ref-123", "name": "main", "type": "branch", "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references/main"}}}, {"id": "ref-456", "name": "v1.0.0", "type": "tag", "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references/v1.0.0"}}}]}}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}}, "/codebases/{codebaseId}/references/{referenceName}": {"get": {"summary": "Retrieves a single git reference for a codebase.", "operationId": "findReferenceByCodebaseIdAndReferenceName", "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:find-reference"}, "mcp": {"enabled": false}, "ops": {"enabled": false}}}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "tags": ["Codebase References"], "parameters": [{"name": "codebaseId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the codebase."}, {"name": "referenceName", "in": "path", "required": true, "description": "Name of the git reference (branch or tag). Slashes must be URL-encoded as `%2F` in the path (e.g., `feature%2Fbranch-name`).", "schema": {"type": "string", "pattern": "^[^/]+$"}}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "properties": {"id": {"type": "string", "description": "Unique identifier for the reference"}, "name": {"type": "string", "description": "Name of the git reference"}, "type": {"type": "string", "enum": ["branch", "tag"], "description": "Type of the git reference"}}, "required": ["id", "name", "type"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"id": "ref-123", "name": "main", "type": "branch", "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references/main"}}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}}, "/codebases/{codebaseId}/domain-patterns": {"get": {"summary": "Retrieves a collection of domain patterns for the specified codebase.", "operationId": "getDomainPatternsByCodebaseId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:list-domain-patterns"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "parameters": [{"name": "codebaseId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the codebase."}, {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the domain pattern."}, "pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].[environment-name].acme.com/app). Both [site-name] and [environment-name] tokens are mandatory at codebase level. Domain rules (enforced in service layer): \u2264 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] \u2264 14 chars, [environment-name] \u2264 10 chars). One pattern per codebase.\n", "example": "[site-name].[environment-name].acme.com"}}, "required": ["id", "pattern"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"domain_pattern_collection": {"summary": "Domain pattern collection", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns"}, "limit": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25{&offset}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25&offset=0{&sort}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 25, "offset": 0}, "_embedded": {"items": [{"id": "22222222-2222-2222-2222-222222222222", "pattern": "[site-name].[environment-name].acme.com", "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222"}}}]}}}, "domain_pattern_collection_empty": {"summary": "Empty domain pattern collection", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns"}, "limit": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25{&offset}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25&offset=0{&sort}", "templated": true}}, "count": 0, "total": 0, "pagination": {"total": 0, "limit": 25, "offset": 0}, "_embedded": {"items": []}}}}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}, "post": {"summary": "Creates a domain pattern for the specified codebase.", "operationId": "createDomainPatternByCodebaseId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:create-domain-pattern"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "parameters": [{"name": "codebaseId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the codebase."}], "requestBody": {"description": "Create domain pattern request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The domain pattern to apply to all associated sites in this codebase, optionally followed by a single path segment. Both [site-name] and [environment-name] tokens are mandatory. Domain \u2264 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per codebase) are enforced at the service layer.\n"}}, "required": ["pattern"], "additionalProperties": false}, "examples": {"create_domain_pattern": {"summary": "Create a domain pattern", "value": {"pattern": "[site-name].[environment-name].acme.com"}}}}}}, "responses": {"202": {"description": "Domain pattern creation initiated.", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The domain pattern is being applied to all associated sites in this codebase.", "description": "Confirmation message that the domain pattern is being applied."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222"}}, "message": "The domain pattern is being applied to all associated sites in this codebase."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}}, "/codebases/{codebaseId}/domain-patterns/{patternId}": {"get": {"summary": "Retrieves a domain pattern by codebase ID and pattern ID.", "operationId": "findDomainPatternByCodebaseIdAndPatternId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:find-domain-pattern"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "parameters": [{"name": "codebaseId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the codebase."}, {"name": "patternId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the domain pattern."}], "responses": {"200": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the domain pattern."}, "pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].[environment-name].acme.com/app). Both [site-name] and [environment-name] tokens are mandatory at codebase level. Domain rules (enforced in service layer): \u2264 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] \u2264 14 chars, [environment-name] \u2264 10 chars). One pattern per codebase.\n", "example": "[site-name].[environment-name].acme.com"}}, "required": ["id", "pattern"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"id": "22222222-2222-2222-2222-222222222222", "pattern": "[site-name].[environment-name].acme.com", "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222"}}}}}, "links": {"self": {"operationId": "findDomainPatternByCodebaseIdAndPatternId", "parameters": {"codebaseId": "$request.path.codebaseId", "patternId": "$request.path.patternId"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}, "put": {"summary": "Updates a domain pattern for the specified codebase.", "operationId": "updateDomainPatternByCodebaseIdAndPatternId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:update-domain-pattern"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "parameters": [{"name": "codebaseId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the codebase."}, {"name": "patternId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the domain pattern."}], "requestBody": {"description": "Update domain pattern request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The updated domain pattern to apply to all associated sites in this codebase, optionally followed by a single path segment. Both [site-name] and [environment-name] tokens are mandatory. Domain \u2264 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per codebase) are enforced at the service layer.\n"}}, "required": ["pattern"], "additionalProperties": false, "minProperties": 1}, "examples": {"update_domain_pattern": {"summary": "Update a domain pattern", "value": {"pattern": "[site-name].[environment-name].acme.com"}}}}}}, "responses": {"202": {"description": "Domain pattern update initiated.", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The domain pattern update is being applied to all associated sites in this codebase.", "description": "Confirmation message that the domain pattern update is being applied."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222"}}, "message": "The domain pattern update is being applied to all associated sites in this codebase."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}, "delete": {"summary": "Deletes a domain pattern for the specified codebase. Engineering role only.", "operationId": "deleteDomainPatternByCodebaseIdAndPatternId", "tags": ["Domain Patterns"], "x-acquia-exposure": {"channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "codebases:delete-domain-pattern"}}, "stability": "development", "audience": ["public"]}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "parameters": [{"name": "codebaseId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the codebase."}, {"name": "patternId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the domain pattern."}], "responses": {"202": {"description": "Domain pattern deletion initiated. The 202 covers two async operations: (1) removal of the pattern record and (2) a bulk cleanup that disassociates any URLs already generated from this pattern on all associated site instances in the codebase. Both operations complete before the final settled state is observable.\n", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The domain pattern is being removed from all associated sites in this codebase.", "description": "Confirmation message that the domain pattern is being removed."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222"}}, "message": "The domain pattern is being removed from all associated sites in this codebase."}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}}, "/subscriptions/{subscriptionId}/codebases": {"get": {"summary": "Retrieves a list of codebases for a subscription.", "operationId": "getCodebasesBySubscriptionId", "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:list-codebases"}, "mcp": {"enabled": false}, "ops": {"enabled": false}}}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "tags": ["Codebases"], "parameters": [{"name": "subscriptionId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the subscription"}, {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}], "responses": {"200": {"description": "A list of codebases for the subscription", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "properties": {"id": {"type": "string", "description": "Unique identifier for the codebase"}, "label": {"type": "string", "description": "Human-readable label for the codebase"}, "region": {"type": "string", "description": "AWS region of the codebase"}, "vcs_url": {"type": "string", "format": "uri", "description": "VCS repository URL"}, "repository_id": {"type": "string", "description": "VCS repository identifier"}, "created_at": {"type": "string", "format": "date-time", "description": "Creation timestamp"}, "updated_at": {"type": "string", "format": "date-time", "description": "Last update timestamp"}, "description": {"type": "string", "description": "Description of the codebase"}, "flags": {"type": "object", "properties": {"is_active": {"type": "boolean", "description": "Whether the codebase is active"}, "is_meo": {"type": "boolean", "description": "Whether the codebase is MEO"}}, "required": ["is_active", "is_meo"], "description": "Feature flags for the codebase"}, "hash": {"type": "string", "description": "Codebase hash"}, "applications_total": {"type": "integer", "description": "Total number of applications linked to this codebase"}}, "required": ["id", "label", "region", "vcs_url", "repository_id", "created_at", "updated_at", "flags", "hash", "applications_total"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"subscription_codebase_collection": {"summary": "Subscription codebase collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/sub-12345/codebases?limit=10&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/sub-12345/codebases?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/sub-12345/codebases?limit=10{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/subscriptions/sub-12345/codebases?limit=10&offset=0{&filter}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 10, "offset": 0}, "_embedded": {"items": [{"id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", "label": "my-codebase", "region": "us-east-1", "vcs_url": "https://github.com/acquia/my-codebase.git", "repository_id": "12345678", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z", "description": "Main production codebase", "flags": {"is_active": true, "is_meo": false}, "hash": "abc123def456", "applications_total": 3, "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4"}}}]}}}}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}, "post": {"summary": "Creates a new codebase for a subscription.", "operationId": "createCodebase", "x-acquia-exposure": {"stability": "production", "audience": ["public"], "channels": {"rest": {"enabled": true}, "cli": {"enabled": true, "command": "subscriptions:create-codebase"}, "mcp": {"enabled": false}, "ops": {"enabled": false}}}, "x-acquia-operation": {"provider": {"service": "codebase-service"}}, "tags": ["Codebases"], "parameters": [{"name": "subscriptionId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the subscription"}], "requestBody": {"description": "Codebase creation request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"codebase_id": {"type": "string", "format": "uuid", "description": "Client-supplied UUID for the new codebase"}, "label": {"type": "string", "description": "Human-readable label for the codebase"}, "region": {"type": "string", "description": "AWS region where the codebase will be created"}}, "required": ["codebase_id", "label", "region"], "additionalProperties": false}, "examples": {"create": {"summary": "Create a codebase", "description": "Creates a new codebase for a subscription", "value": {"codebase_id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", "label": "my-codebase", "region": "us-east-1"}}}}}}, "responses": {"200": {"description": "Codebase created", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Codebase created.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4"}}, "message": "Codebase created."}}}}, "400": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "403": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "404": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "409": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "500": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}}, "security": [{"Codebase_Service_API_BearerAuth": []}]}}}, "components": {"parameters": {"Failover_Service_API_environmentId": {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}, "Failover_Service_API_failoverGroupId": {"name": "failoverGroupId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the failover group."}, "Failover_Service_API_Offset": {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, "Failover_Service_API_Limit": {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, "Failover_Service_API_Filter": {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}, "Failover_Service_API_FailoverGroupId": {"name": "failoverGroupId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the failover group."}, "Failover_Service_API_EnvironmentId": {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}, "CDN_API_SubscriptionUuid": {"name": "subscriptionUuid", "in": "path", "required": true, "description": "The unique identifier of the subscription.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, "CDN_API_DomainName": {"name": "domainName", "in": "path", "required": true, "description": "The fully qualified domain name.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?(\\.[a-zA-Z]{2,})+$"}}, "CDN_API_EnvironmentId": {"name": "environmentId", "in": "path", "required": true, "description": "The unique identifier of the environment.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, "CDN_API_RuleSetId": {"name": "ruleSetId", "in": "path", "required": true, "description": "The unique identifier of the security rule set.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, "CDN_API_IpRuleId": {"name": "ipRuleId", "in": "path", "required": true, "description": "The unique identifier of the IP rule.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, "CDN_API_CustomRuleId": {"name": "customRuleId", "in": "path", "required": true, "description": "The unique identifier of the custom security rule.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, "CDN_API_RateLimitingRuleId": {"name": "rateLimitingRuleId", "in": "path", "required": true, "description": "The unique identifier of the rate limiting rule.", "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}}, "CDN_API_Offset": {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, "CDN_API_Limit": {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, "CDN_API_Filter": {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}, "CDN_API_Sort": {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}, "Environment_Service_API_environmentId": {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}, "Environment_Service_API_siteId": {"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the site."}, "Environment_Service_API_deploymentId": {"name": "deploymentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the deployment."}, "Environment_Service_API_codebaseId": {"name": "codebaseId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Codebase identifier"}, "Environment_Service_API_domainName": {"name": "domainName", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*$"}, "description": "The fully-qualified domain name (e.g., www.example.com)."}, "Environment_Service_API_backupId": {"name": "backupId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Database backup identifier"}, "Environment_Service_API_privateNetworkId": {"name": "privateNetworkId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Private network identifier"}, "Environment_Service_API_patternId": {"name": "patternId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the domain pattern."}, "Environment_Service_API_CodebaseId": {"name": "codebaseId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Codebase identifier"}, "Environment_Service_API_Offset": {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, "Environment_Service_API_Limit": {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, "Environment_Service_API_Filter": {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}, "Environment_Service_API_EnvironmentId": {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the environment."}, "Environment_Service_API_SiteId": {"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the site."}, "Environment_Service_API_PrivateNetworkId": {"name": "privateNetworkId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Private network identifier"}, "Environment_Service_API_Sort": {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}, "Environment_Service_API_DomainName": {"name": "domainName", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*$"}, "description": "The fully-qualified domain name (e.g., www.example.com)."}, "Environment_Service_API_BackupId": {"name": "backupId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Database backup identifier"}, "Environment_Service_API_DeploymentId": {"name": "deploymentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the deployment."}, "Environment_Service_API_PatternId": {"name": "patternId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the domain pattern."}, "SSH_Key_Service_API_SshKeyId": {"name": "sshKeyId", "in": "path", "description": "The SSH key's unique identifier.", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "example": "981b7910-2fe9-11e9-b210-d663bd873d93"}, "SSH_Key_Service_API_Offset": {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, "SSH_Key_Service_API_Limit": {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, "SSH_Key_Service_API_Filter": {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals (default if no operator specified)\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `label=primary` - Filter by label equals primary\n- `fingerprint=@SHA256` - Filter by fingerprint containing \"SHA256\"\n- `label=primary;fingerprint=@SHA256` - label is primary AND fingerprint contains SHA256\n- `label=primary,label=backup` - label is primary OR backup\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "label=primary;fingerprint=@SHA256"}, "SSH_Key_Service_API_Sort": {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}, "Site_Service_API_siteId": {"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "example": "12345678-1234-1234-1234-123456789012"}, "description": "Unique identifier for the site"}, "Site_Service_API_codebaseId": {"name": "codebaseId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "example": "550e8400-e29b-41d4-a716-446655441212"}, "description": "Unique identifier for the codebase"}, "Site_Service_API_subscriptionId": {"name": "subscriptionId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "example": "550e8300-e29b-41d4-a716-446655441212"}, "description": "Unique identifier for the subscription"}, "Site_Service_API_environmentId": {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "example": "0ebce493-9d09-479d-a9a8-138a206fa687"}, "description": "Unique identifier for the environment"}, "Site_Service_API_Offset": {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, "Site_Service_API_Limit": {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, "Site_Service_API_Filter": {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}, "Site_Service_API_Sort": {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}, "Site_Service_API_SiteId": {"name": "siteId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "example": "12345678-1234-1234-1234-123456789012"}, "description": "Unique identifier for the site"}, "Site_Service_API_CodebaseId": {"name": "codebaseId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "example": "550e8400-e29b-41d4-a716-446655441212"}, "description": "Unique identifier for the codebase"}, "Site_Service_API_SubscriptionId": {"name": "subscriptionId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "example": "550e8300-e29b-41d4-a716-446655441212"}, "description": "Unique identifier for the subscription"}, "Site_Service_API_EnvironmentId": {"name": "environmentId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "example": "0ebce493-9d09-479d-a9a8-138a206fa687"}, "description": "Unique identifier for the environment"}, "Federated_Authentication_API_SubscriptionId": {"name": "subscriptionId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the subscription."}, "Federated_Authentication_API_SsoDomainId": {"name": "domainId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the domain."}, "Federated_Authentication_API_IdentityProviderId": {"name": "identityProviderId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the identity provider."}, "Federated_Authentication_API_Offset": {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, "Federated_Authentication_API_Limit": {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, "Federated_Authentication_API_Sort": {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}, "Federated_Authentication_API_Filter": {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}, "Codebase_Service_API_codebaseId": {"name": "codebaseId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the codebase."}, "Codebase_Service_API_patternId": {"name": "patternId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the domain pattern."}, "Codebase_Service_API_referenceName": {"name": "referenceName", "in": "path", "required": true, "description": "Name of the git reference (branch or tag). Slashes must be URL-encoded as `%2F` in the path (e.g., `feature%2Fbranch-name`).", "schema": {"type": "string", "pattern": "^[^/]+$"}}, "Codebase_Service_API_subscriptionId": {"name": "subscriptionId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the subscription"}, "Codebase_Service_API_Offset": {"name": "offset", "in": "query", "description": "The number of items to skip before starting to collect the result set.", "required": false, "schema": {"type": "integer", "minimum": 0, "example": 20}}, "Codebase_Service_API_Limit": {"name": "limit", "in": "query", "description": "The maximum number of items to return per page.", "required": false, "schema": {"type": "integer", "minimum": 1, "example": 10}}, "Codebase_Service_API_Filter": {"name": "filter", "in": "query", "description": "Filter the result set using field-based criteria.\n**Format:** `field=value` or `fieldvalue`\n**Logical operators:**\n- `,` (comma) - OR logic between filters\n- `;` (semicolon) - AND logic between filters\n- **Note:** Cannot mix OR and AND operators in the same query\n**Comparison operators:**\n- `=` - Equals. This is the default comparison operator; `:` is accepted as a backward-compatible alias for `=`\n- `!=` - Does not equal\n- `>` - Greater than\n- `<` - Less than\n- `>=` - Greater than or equal to\n- `<=` - Less than or equal to\n- `=@` - Contains substring\n- `!@` - Does not contain substring\n**Wildcards:**\n- `*` - Wildcard character for pattern matching\n**Examples:**\n- `status=active` - Filter by status equals active\n- `name=@prod` - Filter by name containing \"prod\"\n- `status=active;type=standard` - Status is active AND type is standard\n- `status=active,status=pending` - Status is active OR pending\n", "required": false, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+([;,][a-zA-Z0-9_]+(=@|!@|!=|>=|<=|[:=]|>|<)[a-zA-Z0-9_\\-*.]+)*$"}, "example": "status=active;type=standard"}, "Codebase_Service_API_CodebaseId": {"name": "codebaseId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the codebase."}, "Codebase_Service_API_ReferenceName": {"name": "referenceName", "in": "path", "required": true, "description": "Name of the git reference (branch or tag). Slashes must be URL-encoded as `%2F` in the path (e.g., `feature%2Fbranch-name`).", "schema": {"type": "string", "pattern": "^[^/]+$"}}, "Codebase_Service_API_Sort": {"name": "sort", "in": "query", "description": "Sort the result set by one or more fields.\n**Format:** `field1,field2,-field3`\n**Sort order:**\n- No prefix - Ascending order (default)\n- `-` prefix - Descending order\n**Multiple fields:**\n- Fields are processed in the order specified\n- First field has highest priority\n- Use comma to separate multiple fields\n**Examples:**\n- `name` - Sort by name in ascending order\n- `-created_at` - Sort by created_at in descending order\n- `name,-created_at` - Sort by name ascending, then created_at descending\n- `status,name,-updated_at` - Sort by status ascending, then name ascending, then updated_at descending\n", "required": false, "schema": {"type": "string", "pattern": "^(-?[a-zA-Z0-9_]+)(,-?[a-zA-Z0-9_]+)*$"}, "example": "name,-created_at"}, "Codebase_Service_API_PatternId": {"name": "patternId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the domain pattern."}, "Codebase_Service_API_SubscriptionId": {"name": "subscriptionId", "in": "path", "required": true, "schema": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$"}, "description": "Unique identifier for the subscription"}}, "responses": {"Failover_Service_API_ForbiddenError": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "Failover_Service_API_InternalServerError": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}, "Failover_Service_API_NotFoundError": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "Failover_Service_API_UnauthorizedError": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "Failover_Service_API_InvalidOperationError": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "Failover_Service_API_FailoverGroupCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "properties": {"id": {"type": "string", "description": "Unique identifier for the failover group.", "example": "b2c3d4e5-f6a7-8901-bcde-f12345678901"}, "name": {"type": "string", "description": "The name of the failover group.", "example": "Primary Failover Group"}, "status": {"type": "string", "enum": ["creating", "normal", "failed-over", "failing-over", "error", "deleting", "deleted"], "description": "The current status of the failover group.", "example": "normal"}, "pairs": {"type": "array", "description": "The list of failover pairs belonging to this failover group.", "items": {"type": "object", "properties": {"service_name": {"type": "string", "description": "The name of the service for this failover pair.", "example": "my-application-service"}, "primary_id": {"type": "string", "description": "The ID of the primary resource in the failover pair.", "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"}, "failover_id": {"type": "string", "description": "The UUID of the failover resource in the failover pair.", "example": "f1e2d3c4-b5a6-7890-fedc-ba9876543210"}}, "required": ["service_name", "primary_id", "failover_id"]}}}, "required": ["id", "name", "status", "pairs"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"failover_group_collection": {"summary": "Failover group collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/failover-groups?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/failover-groups?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/failover-groups?limit=2&offset=0{&filter}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", "name": "Primary Failover Group", "status": "normal", "pairs": [{"service_name": "my-application-service", "primary_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "failover_id": "f1e2d3c4-b5a6-7890-fedc-ba9876543210"}], "_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901"}}}]}}}}}}}, "Failover_Service_API_FailoverGroup": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "properties": {"id": {"type": "string", "description": "Unique identifier for the failover group.", "example": "b2c3d4e5-f6a7-8901-bcde-f12345678901"}, "name": {"type": "string", "description": "The name of the failover group.", "example": "Primary Failover Group"}, "status": {"type": "string", "enum": ["creating", "normal", "failed-over", "failing-over", "error", "deleting", "deleted"], "description": "The current status of the failover group.", "example": "normal"}, "pairs": {"type": "array", "description": "The list of failover pairs belonging to this failover group.", "items": {"type": "object", "properties": {"service_name": {"type": "string", "description": "The name of the service for this failover pair.", "example": "my-application-service"}, "primary_id": {"type": "string", "description": "The ID of the primary resource in the failover pair.", "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"}, "failover_id": {"type": "string", "description": "The UUID of the failover resource in the failover pair.", "example": "f1e2d3c4-b5a6-7890-fedc-ba9876543210"}}, "required": ["service_name", "primary_id", "failover_id"]}}}, "required": ["id", "name", "status", "pairs"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", "name": "Primary Failover Group", "status": "normal", "pairs": [{"service_name": "my-application-service", "primary_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "failover_id": "f1e2d3c4-b5a6-7890-fedc-ba9876543210"}], "_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901"}}}}}, "links": {"self": {"operationId": "findFailoverGroupByFailoverGroupId", "parameters": {"failoverGroupId": "$request.path.failoverGroupId"}}}}, "Failover_Service_API_MultiRegionFailoverStatus": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "properties": {"is_enabled": {"type": "boolean", "description": "Whether multi-region failover is enabled for the environment."}, "failover_group_id": {"type": "string", "description": "The identifier of the failover group associated with the environment."}, "is_traffic_failed_over": {"type": "boolean", "description": "Whether traffic has been failed over to the secondary region."}}, "required": ["is_enabled"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"is_enabled": true, "failover_group_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", "is_traffic_failed_over": false, "_links": {"self": {"href": "https://api.acquia.com/v3/environments/a1b2c3d4-e5f6-7890-abcd-ef1234567890/multi-region-failover"}}}}}, "links": {"self": {"operationId": "findMultiRegionFailoverByEnvironmentId", "parameters": {"environmentId": "$request.path.environmentId"}}}}, "Failover_Service_API_CreateFailoverGroupResponse": {"description": "Failover group creation initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Failover group creation has been initiated.", "description": "Confirmation message that the failover group creation has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901"}}, "message": "Failover group creation has been initiated."}}}}, "Failover_Service_API_DeleteFailoverGroupResponse": {"description": "Failover group deletion initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Failover group deletion has been initiated.", "description": "Confirmation message that the failover group deletion has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901"}}, "message": "Failover group deletion has been initiated."}}}}, "Failover_Service_API_FailoverGroupFailoverResponse": {"description": "Failover group failover initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Failover group failover initiated.", "description": "Confirmation message that the failover group failover has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901"}}, "message": "Failover group failover initiated."}}}}, "Failover_Service_API_FailoverGroupRevertFailoverResponse": {"description": "Failover group revert failover initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Failover group revert failover initiated.", "description": "Confirmation message that the failover group revert failover has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901"}}, "message": "Failover group revert failover initiated."}}}}, "Failover_Service_API_FailoverGroupSyncResponse": {"description": "Failover group sync initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Failover group sync initiated.", "description": "Confirmation message that the failover group sync has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/failover-groups/b2c3d4e5-f6a7-8901-bcde-f12345678901"}}, "message": "Failover group sync initiated."}}}}, "Failover_Service_API_SaveMultiRegionFailoverResponse": {"description": "Multi-region failover enable initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Multi-region failover enable has been initiated.", "description": "Confirmation message that multi-region failover enable has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/a1b2c3d4-e5f6-7890-abcd-ef1234567890/multi-region-failover"}}, "message": "Multi-region failover enable has been initiated."}}}}, "Failover_Service_API_DeleteMultiRegionFailoverResponse": {"description": "Multi-region failover disable initiated", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "Multi-region failover disable has been initiated.", "description": "Confirmation message that multi-region failover disable has been initiated."}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/a1b2c3d4-e5f6-7890-abcd-ef1234567890/multi-region-failover"}}, "message": "Multi-region failover disable has been initiated."}}}}, "Failover_Service_API_ValidationError": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "API_Specs_API_InternalServerError": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}, "CDN_API_ValidationError": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "CDN_API_UnauthorizedError": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "CDN_API_ForbiddenError": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "CDN_API_NotFoundError": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "CDN_API_InvalidOperationError": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "CDN_API_InternalServerError": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}, "CDN_API_DomainCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "description": "CDN domain resource.", "properties": {"domain": {"type": "string", "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?(\\.[a-zA-Z]{2,})+$", "description": "The fully qualified domain name."}, "subscription_uuid": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "The unique identifier of the subscription the domain belongs to."}, "environment_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "The environment identifier associated with the domain."}, "application_name": {"type": "string", "description": "The name of the application associated with the domain."}, "status": {"type": "string", "description": "The current status of the domain.", "enum": ["connecting-to-edge", "domain-validation-pending", "ready-for-dns-repointing", "configuration-failed", "configured"]}, "ownership_validation_cname": {"type": "string", "description": "The CNAME record that must be created on the domain's DNS to validate ownership."}, "bandwidth_usage_tb": {"type": "number", "format": "float", "description": "The bandwidth usage for the domain in terabytes."}, "created_at": {"type": "string", "format": "date-time", "description": "The timestamp when the domain was created."}, "updated_at": {"type": "string", "format": "date-time", "description": "The timestamp when the domain was last updated."}}, "required": ["domain", "subscription_uuid", "environment_id", "status", "application_name", "ownership_validation_cname", "bandwidth_usage_tb", "created_at", "updated_at"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"domains_response": {"summary": "Domain collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=0{&sort}", "templated": true}, "next": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains?limit=2&offset=2"}}, "count": 2, "total": 50, "pagination": {"total": 50, "limit": 2, "offset": 0}, "_embedded": {"items": [{"domain": "example.com", "subscription_uuid": "12345678-1234-1234-1234-123456789012", "environment_id": "0c3f0f5f-5727-4838-9459-2d90ee1cf7c1", "application_name": "my-application", "status": "configured", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-20T15:45:00Z", "ownership_validation_cname": "_acme-challenge.example.com", "bandwidth_usage_tb": 1.25, "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains/example.com"}}}, {"domain": "test.example.org", "subscription_uuid": "12345678-1234-1234-1234-123456789012", "environment_id": "1d4f1f6f-6838-5949-a560-3e01ff2cf8d2", "application_name": "test-application", "status": "connecting-to-edge", "created_at": "2024-01-18T08:15:00Z", "ownership_validation_cname": "_acme-challenge.example.com", "bandwidth_usage_tb": 1.25, "updated_at": "2024-01-18T08:15:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains/test.example.org"}}}]}}}}}}}, "CDN_API_Domain": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "description": "CDN domain resource.", "properties": {"domain": {"type": "string", "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?(\\.[a-zA-Z]{2,})+$", "description": "The fully qualified domain name."}, "subscription_uuid": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "The unique identifier of the subscription the domain belongs to."}, "environment_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "The environment identifier associated with the domain."}, "application_name": {"type": "string", "description": "The name of the application associated with the domain."}, "status": {"type": "string", "description": "The current status of the domain.", "enum": ["connecting-to-edge", "domain-validation-pending", "ready-for-dns-repointing", "configuration-failed", "configured"]}, "ownership_validation_cname": {"type": "string", "description": "The CNAME record that must be created on the domain's DNS to validate ownership."}, "bandwidth_usage_tb": {"type": "number", "format": "float", "description": "The bandwidth usage for the domain in terabytes."}, "created_at": {"type": "string", "format": "date-time", "description": "The timestamp when the domain was created."}, "updated_at": {"type": "string", "format": "date-time", "description": "The timestamp when the domain was last updated."}}, "required": ["domain", "subscription_uuid", "environment_id", "status", "application_name", "ownership_validation_cname", "bandwidth_usage_tb", "created_at", "updated_at"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"domain": "example.com", "subscription_uuid": "12345678-1234-1234-1234-123456789012", "environment_id": "0c3f0f5f-5727-4838-9459-2d90ee1cf7c1", "application_name": "my-application", "status": "configured", "ownership_validation_cname": "_acme-challenge.example.com", "bandwidth_usage_tb": 1.25, "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-20T15:45:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains/example.com"}}}}}, "links": {"self": {"operationId": "findDomainBySubscriptionUuidAndDomainName", "parameters": {"subscriptionUuid": "$request.path.subscriptionUuid", "domainName": "$request.path.domainName"}}}}, "CDN_API_DomainCdnProvisioningAccepted": {"description": "Accepted - Provisioning in progress", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The domain provisioning has been started.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains/example.com"}}, "message": "The domain provisioning has been started."}}}}, "CDN_API_DomainCdnDeprovisioningAccepted": {"description": "Accepted - Deprovisioning in progress", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The domain deprovisioning has been started.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/domains/example.com"}}, "message": "The domain deprovisioning has been started."}}}}, "CDN_API_PurgeAccepted": {"description": "Accepted - Purge request submitted", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The purge request has been submitted.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/0c3f0f5f-5727-4838-9459-2d90ee1cf7c1/actions/purge-cdn"}}, "message": "The purge request has been submitted."}}}}, "CDN_API_SecurityRuleSet": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "properties": {"id": {"type": "integer", "minimum": 1, "description": "The unique identifier of the security ruleset."}, "name": {"type": "string", "description": "The display name of the security ruleset."}, "is_enabled": {"type": "boolean", "description": "Indicates whether the security ruleset is enabled."}, "description": {"type": "string", "description": "The description of the security ruleset."}, "type": {"type": "string", "description": "The type of the security ruleset.", "enum": ["owasp", "acquia-managed"]}}, "required": ["id", "name", "is_enabled"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"id": 1, "name": "OWASP Top 10", "is_enabled": true, "description": "OWASP Top 10 security ruleset", "type": "owasp", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rulesets/1"}}}}}, "links": {"self": {"operationId": "findSecurityRuleSetBySubscriptionUuidAndRuleSetId", "parameters": {"subscriptionUuid": "$request.path.subscriptionUuid", "ruleSetId": "$request.path.ruleSetId"}}}}, "CDN_API_SecurityRuleSetCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "properties": {"id": {"type": "integer", "minimum": 1, "description": "The unique identifier of the security ruleset."}, "name": {"type": "string", "description": "The display name of the security ruleset."}, "is_enabled": {"type": "boolean", "description": "Indicates whether the security ruleset is enabled."}, "description": {"type": "string", "description": "The description of the security ruleset."}, "type": {"type": "string", "description": "The type of the security ruleset.", "enum": ["owasp", "acquia-managed"]}}, "required": ["id", "name", "is_enabled"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"security_rule_sets_response": {"summary": "Security rulesets collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rulesets?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rulesets?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rulesets?limit=2{&offset}", "templated": true}}, "count": 2, "total": 5, "pagination": {"total": 5, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": 123, "name": "OWASP Core Ruleset", "is_enabled": true, "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rulesets/123"}}}, {"id": 456, "name": "Bot Protection", "is_enabled": false, "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rulesets/456"}}}]}}}}}}}, "CDN_API_SecurityRuleSetUpdated": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The security ruleset has been updated.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rulesets/123"}}, "message": "The security ruleset has been updated."}}}}, "CDN_API_IpRule": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "properties": {"id": {"type": "integer", "minimum": 1, "description": "The unique identifier of the IP rule."}, "display_name": {"type": "string", "description": "The display name of the IP rule."}, "action": {"type": "string", "enum": ["block", "allow"], "description": "The action applied when the rule matches."}, "description": {"type": "string", "description": "The description of the IP rule."}, "ips": {"type": "array", "description": "The IPs or CIDR blocks associated with the rule.", "items": {"type": "string", "description": "An IP address or CIDR block."}}, "created_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was created."}, "updated_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was last updated."}}, "required": ["id", "display_name", "action", "ips", "created_at", "updated_at"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"id": 101, "display_name": "Block office VPN", "action": "allow", "description": "Allow traffic from the office VPN", "ips": ["203.0.113.0/24"], "created_at": "2026-05-01T12:00:00Z", "updated_at": "2026-05-10T09:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules/101"}}}}}, "links": {"self": {"operationId": "findIpRuleBySubscriptionUuidAndIpRuleId", "parameters": {"subscriptionUuid": "$request.path.subscriptionUuid", "ipRuleId": "$request.path.ipRuleId"}}}}, "CDN_API_IpRuleCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "properties": {"id": {"type": "integer", "minimum": 1, "description": "The unique identifier of the IP rule."}, "display_name": {"type": "string", "description": "The display name of the IP rule."}, "action": {"type": "string", "enum": ["block", "allow"], "description": "The action applied when the rule matches."}, "description": {"type": "string", "description": "The description of the IP rule."}, "ips": {"type": "array", "description": "The IPs or CIDR blocks associated with the rule.", "items": {"type": "string", "description": "An IP address or CIDR block."}}, "created_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was created."}, "updated_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was last updated."}}, "required": ["id", "display_name", "action", "ips", "created_at", "updated_at"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"ip_rules_response": {"summary": "IP rules collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules?limit=2&offset=0{&sort}", "templated": true}, "next": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules?offset=2&limit=2"}}, "count": 2, "total": 5, "pagination": {"total": 5, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": 101, "display_name": "Block office IPs", "action": "block", "description": "Blocks office IP ranges.", "ips": ["192.0.2.10", "198.51.100.0/24"], "created_at": "2026-05-01T12:00:00Z", "updated_at": "2026-05-10T09:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules/101"}}}, {"id": 102, "display_name": "Allow support", "action": "allow", "description": "Allows support traffic.", "ips": ["203.0.113.5"], "created_at": "2026-05-02T08:15:00Z", "updated_at": "2026-05-11T13:45:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules/102"}}}]}}}}}}}, "CDN_API_IpRuleCreated": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The IP rule has been created.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules/101"}}, "message": "The IP rule has been created."}}}}, "CDN_API_IpRuleUpdated": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The IP rule has been updated.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules/101"}}, "message": "The IP rule has been updated."}}}}, "CDN_API_IpRuleDeleted": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The IP rule has been deleted.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/ip-rules/101"}}, "message": "The IP rule has been deleted."}}}}, "CDN_API_CustomRuleCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "properties": {"id": {"type": "integer", "minimum": 1, "description": "The unique identifier of the custom security rule."}, "display_name": {"type": "string", "description": "The display name of the custom security rule."}, "action": {"type": "string", "enum": ["block", "allow", "alert"], "description": "The action applied when the rule matches."}, "priority": {"type": "integer", "minimum": 1, "description": "The priority order for the rule. Lower values are evaluated first.\nPriorities must be unique within a subscription \u2014 creating or\nupdating a rule with a priority already in use replaces the\nexisting rule at that priority.\n"}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "paths": {"type": "array", "description": "The paths the rule applies to.", "items": {"type": "string", "description": "A path pattern."}}, "mapped_domains_count": {"type": "integer", "description": "The number of domains the rule is mapped to."}, "targets": {"type": "array", "description": "Conditions that must match for the rule to fire.", "items": {"oneOf": [{"description": "Range match for IP or ASN ranges.", "type": "object", "required": ["attribute", "criteria", "value"], "additionalProperties": false, "properties": {"attribute": {"type": "string", "description": "The request attribute the rule inspects.", "enum": ["source-ip", "asn"]}, "criteria": {"type": "string", "description": "How `value` is compared against `attribute`.", "enum": ["range"]}, "value": {"type": "object", "description": "Range bounds for IP or ASN ranges.", "additionalProperties": false, "required": ["from", "to"], "properties": {"from": {"type": "string", "description": "The start of the range."}, "to": {"type": "string", "description": "The end of the range."}}}}}, {"description": "Value-list match for non-header, non-query attributes.", "type": "object", "required": ["attribute", "criteria", "value"], "additionalProperties": false, "properties": {"attribute": {"type": "string", "description": "The request attribute the rule inspects.", "enum": ["source-ip", "country", "method", "path", "asn"]}, "criteria": {"type": "string", "description": "How `value` is compared against `attribute`.", "enum": ["equals", "contains", "regex"]}, "value": {"type": "object", "description": "A list of candidate values combined with OR.", "additionalProperties": false, "required": ["values"], "properties": {"values": {"type": "array", "description": "The list of values.", "items": {"type": "string", "description": "A value."}}}}}}, {"description": "Key-value match for header or query-string attributes.", "type": "object", "required": ["attribute", "criteria", "value"], "additionalProperties": false, "properties": {"attribute": {"type": "string", "description": "The request attribute the rule inspects.", "enum": ["header", "query-string"]}, "criteria": {"type": "string", "description": "How `value` is compared against `attribute`.", "enum": ["equals", "contains", "regex"]}, "value": {"type": "object", "description": "Key-value matchers for header or query-string attributes.", "additionalProperties": false, "required": ["key_value_pairs"], "properties": {"key_value_pairs": {"type": "array", "description": "The list of key-value pairs.", "items": {"type": "object", "description": "A key-value pair.", "required": ["key", "value"], "properties": {"key": {"type": "string", "description": "The header or query-parameter name."}, "value": {"type": "string", "description": "The expected value."}}}}}}}}]}}, "created_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was created."}, "updated_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was last updated."}}, "required": ["id", "display_name", "action", "priority", "domains", "paths", "created_at", "updated_at", "targets"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"custom_rules_response": {"summary": "Custom rules collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules?limit=2{&offset}", "templated": true}}, "count": 2, "total": 5, "pagination": {"total": 5, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": 301, "display_name": "Block bad bots", "action": "block", "priority": 1, "domains": ["example.com"], "paths": ["/api/*"], "targets": [{"attribute": "source-ip", "criteria": "range", "value": {"from": "10.0.0.0", "to": "10.0.0.255"}}], "created_at": "2026-05-01T12:00:00Z", "updated_at": "2026-05-10T09:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules/301"}}}, {"id": 302, "display_name": "Alert login scans", "action": "alert", "priority": 2, "domains": ["shop.example.com"], "paths": ["/login"], "targets": [{"attribute": "path", "criteria": "equals", "value": {"values": ["/login"]}}], "created_at": "2026-05-02T08:15:00Z", "updated_at": "2026-05-11T13:45:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules/302"}}}]}}}}}}}, "CDN_API_CustomRule": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "properties": {"id": {"type": "integer", "minimum": 1, "description": "The unique identifier of the custom security rule."}, "display_name": {"type": "string", "description": "The display name of the custom security rule."}, "action": {"type": "string", "enum": ["block", "allow", "alert"], "description": "The action applied when the rule matches."}, "priority": {"type": "integer", "minimum": 1, "description": "The priority order for the rule. Lower values are evaluated first.\nPriorities must be unique within a subscription \u2014 creating or\nupdating a rule with a priority already in use replaces the\nexisting rule at that priority.\n"}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "paths": {"type": "array", "description": "The paths the rule applies to.", "items": {"type": "string", "description": "A path pattern."}}, "mapped_domains_count": {"type": "integer", "description": "The number of domains the rule is mapped to."}, "targets": {"type": "array", "description": "Conditions that must match for the rule to fire.", "items": {"oneOf": [{"description": "Range match for IP or ASN ranges.", "type": "object", "required": ["attribute", "criteria", "value"], "additionalProperties": false, "properties": {"attribute": {"type": "string", "description": "The request attribute the rule inspects.", "enum": ["source-ip", "asn"]}, "criteria": {"type": "string", "description": "How `value` is compared against `attribute`.", "enum": ["range"]}, "value": {"type": "object", "description": "Range bounds for IP or ASN ranges.", "additionalProperties": false, "required": ["from", "to"], "properties": {"from": {"type": "string", "description": "The start of the range."}, "to": {"type": "string", "description": "The end of the range."}}}}}, {"description": "Value-list match for non-header, non-query attributes.", "type": "object", "required": ["attribute", "criteria", "value"], "additionalProperties": false, "properties": {"attribute": {"type": "string", "description": "The request attribute the rule inspects.", "enum": ["source-ip", "country", "method", "path", "asn"]}, "criteria": {"type": "string", "description": "How `value` is compared against `attribute`.", "enum": ["equals", "contains", "regex"]}, "value": {"type": "object", "description": "A list of candidate values combined with OR.", "additionalProperties": false, "required": ["values"], "properties": {"values": {"type": "array", "description": "The list of values.", "items": {"type": "string", "description": "A value."}}}}}}, {"description": "Key-value match for header or query-string attributes.", "type": "object", "required": ["attribute", "criteria", "value"], "additionalProperties": false, "properties": {"attribute": {"type": "string", "description": "The request attribute the rule inspects.", "enum": ["header", "query-string"]}, "criteria": {"type": "string", "description": "How `value` is compared against `attribute`.", "enum": ["equals", "contains", "regex"]}, "value": {"type": "object", "description": "Key-value matchers for header or query-string attributes.", "additionalProperties": false, "required": ["key_value_pairs"], "properties": {"key_value_pairs": {"type": "array", "description": "The list of key-value pairs.", "items": {"type": "object", "description": "A key-value pair.", "required": ["key", "value"], "properties": {"key": {"type": "string", "description": "The header or query-parameter name."}, "value": {"type": "string", "description": "The expected value."}}}}}}}}]}}, "created_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was created."}, "updated_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was last updated."}}, "required": ["id", "display_name", "action", "priority", "domains", "paths", "created_at", "updated_at", "targets"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"id": 301, "display_name": "Block bad bots", "action": "block", "priority": 1, "domains": ["example.com"], "paths": ["/api/*"], "targets": [{"attribute": "source-ip", "criteria": "range", "value": {"from": "10.0.0.0", "to": "10.0.0.255"}}, {"attribute": "header", "criteria": "equals", "value": {"key_value_pairs": [{"key": "User-Agent", "value": "BadBot/1.0"}]}}], "created_at": "2026-05-01T12:00:00Z", "updated_at": "2026-05-10T09:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules/301"}}}}}, "links": {"self": {"operationId": "findCustomRuleBySubscriptionUuidAndCustomRuleId", "parameters": {"subscriptionUuid": "$request.path.subscriptionUuid", "customRuleId": "$request.path.customRuleId"}}}}, "CDN_API_CustomRuleCreated": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The custom security rule has been created.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules/301"}}, "message": "The custom security rule has been created."}}}}, "CDN_API_CustomRuleDeleted": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The custom security rule has been deleted.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules/301"}}, "message": "The custom security rule has been deleted."}}}}, "CDN_API_RateLimitingRuleCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "properties": {"id": {"type": "integer", "minimum": 1, "description": "The unique identifier of the rate limiting rule."}, "display_name": {"type": "string", "description": "The display name of the rate limiting rule."}, "action": {"type": "string", "enum": ["block", "alert"], "description": "The action applied when the rule matches."}, "rate_limit_per_minute": {"type": "string", "enum": ["lenient", "moderate", "strict"], "description": "The rate limit category applied to the rule."}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "created_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was created."}, "updated_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was last updated."}}, "required": ["id", "display_name", "action", "rate_limit_per_minute", "domains", "created_at", "updated_at"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"rate_limiting_rules_response": {"summary": "Rate limiting rules collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules?limit=2&offset=0{&sort}", "templated": true}, "next": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules?limit=2&offset=2"}}, "count": 2, "total": 4, "pagination": {"total": 4, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": 501, "display_name": "Rate Rule 1", "action": "alert", "rate_limit_per_minute": "lenient", "domains": ["example.com"], "created_at": "2026-05-01T12:00:00Z", "updated_at": "2026-05-10T09:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules/501"}}}, {"id": 502, "display_name": "Rate Rule 2", "action": "block", "rate_limit_per_minute": "strict", "domains": ["shop.example.com"], "created_at": "2026-05-02T08:15:00Z", "updated_at": "2026-05-11T13:45:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules/502"}}}]}}}}}}}, "CDN_API_RateLimitingRule": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "properties": {"id": {"type": "integer", "minimum": 1, "description": "The unique identifier of the rate limiting rule."}, "display_name": {"type": "string", "description": "The display name of the rate limiting rule."}, "action": {"type": "string", "enum": ["block", "alert"], "description": "The action applied when the rule matches."}, "rate_limit_per_minute": {"type": "string", "enum": ["lenient", "moderate", "strict"], "description": "The rate limit category applied to the rule."}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "created_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was created."}, "updated_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was last updated."}}, "required": ["id", "display_name", "action", "rate_limit_per_minute", "domains", "created_at", "updated_at"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"id": 501, "display_name": "Rate Rule 1", "action": "alert", "rate_limit_per_minute": "lenient", "domains": ["example.com"], "created_at": "2026-05-01T12:00:00Z", "updated_at": "2026-05-10T09:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules/501"}}}}}, "links": {"self": {"operationId": "findRateLimitingRuleBySubscriptionUuidAndRateLimitingRuleId", "parameters": {"subscriptionUuid": "$request.path.subscriptionUuid", "rateLimitingRuleId": "$request.path.rateLimitingRuleId"}}}}, "CDN_API_RateLimitingRuleCreated": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The rate limiting rule has been created.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules/501"}}, "message": "The rate limiting rule has been created."}}}}, "CDN_API_RateLimitingRuleUpdated": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The rate limiting rule has been updated.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules/501"}}, "message": "The rate limiting rule has been updated."}}}}, "CDN_API_RateLimitingRuleDeleted": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The rate limiting rule has been deleted.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/rate-limiting-rules/501"}}, "message": "The rate limiting rule has been deleted."}}}}, "CDN_API_CustomRuleUpdated": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, {"type": "object", "properties": {"message": {"type": "string", "const": "The custom security rule has been updated.", "description": "Confirmation message"}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/12345678-1234-1234-1234-123456789012/config/security/custom-rules/301"}}, "message": "The custom security rule has been updated."}}}}, "Environment_Service_API_ForbiddenError": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "Environment_Service_API_InternalServerError": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}, "Environment_Service_API_NotFoundError": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "Environment_Service_API_UnauthorizedError": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "Environment_Service_API_ValidationError": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "Environment_Service_API_InvalidOperationError": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "Environment_Service_API_DeploymentCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "description": "Deployment properties", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the deployment."}, "environment_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Identifier of the environment this deployment belongs to."}, "status": {"type": "string", "description": "Current status of the deployment.", "enum": ["waiting", "received", "started", "done", "failed", "error", "killed"]}, "code_reference": {"type": "string", "description": "The code reference (e.g. branch or tag) deployed."}, "run_hooks": {"type": "boolean", "description": "Whether deployment hooks were run."}, "hooks_argument": {"type": ["string", "null"], "description": "Additional arguments passed to deployment hooks."}, "created_at": {"type": "string", "format": "date-time", "description": "Timestamp when the deployment was created."}, "started_at": {"type": ["string", "null"], "format": "date-time", "description": "Timestamp when the deployment started."}, "completed_at": {"type": ["string", "null"], "format": "date-time", "description": "Timestamp when the deployment completed."}, "sender_id": {"type": ["string", "null"], "description": "Identifier of the user or system that initiated the deployment."}, "logs": {"type": ["string", "null"], "description": "Deployment log output."}}, "required": ["id", "environment_id", "status", "code_reference", "run_hooks", "created_at"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"deployment_response": {"summary": "Deployment collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=2"}, "limit": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?offset=2{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=2{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=2{&sort}", "templated": true}, "prev": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=0"}, "next": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/deployments?limit=2&offset=4"}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3", "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", "status": "done", "code_reference": "tags/v1.0.0", "run_hooks": true, "hooks_argument": null, "sender_id": null, "created_at": "2025-04-01T13:01:06.603Z", "started_at": "2025-04-01T13:01:10.123Z", "completed_at": "2025-04-01T13:05:00.000Z", "_links": {"self": {"href": "https://api.acquia.com/v3/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3"}, "environment": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323"}}}, {"id": "f1dae0f8-67c7-5d1e-cbe1-1f7604f77de4", "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", "status": "failed", "code_reference": "tags/v0.9.0", "run_hooks": false, "hooks_argument": null, "sender_id": null, "created_at": "2025-03-28T09:15:00.000Z", "started_at": "2025-03-28T09:15:05.000Z", "completed_at": "2025-03-28T09:18:00.000Z", "_links": {"self": {"href": "https://api.acquia.com/v3/deployments/f1dae0f8-67c7-5d1e-cbe1-1f7604f77de4"}, "environment": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323"}}}]}}}}}}}, "Environment_Service_API_Deployment": {"description": "Deployment details", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "description": "Deployment properties", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the deployment."}, "environment_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Identifier of the environment this deployment belongs to."}, "status": {"type": "string", "description": "Current status of the deployment.", "enum": ["waiting", "received", "started", "done", "failed", "error", "killed"]}, "code_reference": {"type": "string", "description": "The code reference (e.g. branch or tag) deployed."}, "run_hooks": {"type": "boolean", "description": "Whether deployment hooks were run."}, "hooks_argument": {"type": ["string", "null"], "description": "Additional arguments passed to deployment hooks."}, "created_at": {"type": "string", "format": "date-time", "description": "Timestamp when the deployment was created."}, "started_at": {"type": ["string", "null"], "format": "date-time", "description": "Timestamp when the deployment started."}, "completed_at": {"type": ["string", "null"], "format": "date-time", "description": "Timestamp when the deployment completed."}, "sender_id": {"type": ["string", "null"], "description": "Identifier of the user or system that initiated the deployment."}, "logs": {"type": ["string", "null"], "description": "Deployment log output."}}, "required": ["id", "environment_id", "status", "code_reference", "run_hooks", "created_at"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"id": "e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3", "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", "status": "started", "code_reference": "tags/v1.0.0", "run_hooks": true, "hooks_argument": "--skip-db-update", "created_at": "2025-04-01T13:01:06.603Z", "started_at": "2025-04-01T13:01:10.123Z", "completed_at": null, "sender_id": null, "logs": null, "_links": {"self": {"href": "https://api.acquia.com/v3/deployments/e0c9dff7-56b6-4c0d-bad0-0e6593f66cd3"}, "environment": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323"}}}}}, "links": {"self": {"operationId": "findDeploymentByDeploymentId", "parameters": {"deploymentId": "$request.path.deploymentId"}}}}, "Environment_Service_API_CodeDeploy": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "properties": {"concurrency": {"type": "integer", "minimum": 1, "maximum": 100, "description": "Maximum number of concurrent code deploys allowed for the environment."}}, "required": ["concurrency"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"concurrency": 5, "_links": {"self": {"href": "https://api.acquia.com/v3/environments/d3f7270e-c45f-4801-9308-5e8afe84a323/code-deploy"}}}}}, "links": {"self": {"operationId": "findCodeDeployByEnvironmentId", "parameters": {"environmentId": "$request.path.environmentId"}}}}, "Environment_Service_API_Environment": {"description": "Environment details", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "description": "Environment properties", "properties": {"id": {"type": "string", "description": "The unique identifier of the environment", "pattern": "^[a-zA-Z0-9-]+$"}, "name": {"type": "string", "description": "The machine name of the environment"}, "label": {"type": "string", "description": "The human-readable label of the environment"}, "description": {"type": "string", "description": "A description of the environment"}, "status": {"type": "string", "description": "The current status of the environment", "enum": ["normal", "allocated", "launching", "killed", "cancelled", "stopped"]}, "flags": {"type": "object", "description": "Environment configuration flags", "additionalProperties": {"type": "boolean"}}, "properties": {"type": "object", "description": "Environment PHP and server properties", "properties": {"version": {"type": "string", "description": "PHP version"}, "max_execution_time": {"type": "integer", "description": "Maximum execution time in seconds"}, "memory_limit": {"type": "integer", "description": "Memory limit in MB"}, "apcu": {"type": "integer", "description": "APCu cache size in MB"}, "client_max_body_size": {"type": "integer", "description": "Maximum client body size in MB"}, "max_input_vars": {"type": "integer", "description": "Maximum number of input variables"}, "max_post_size": {"type": "integer", "description": "Maximum POST size in MB"}, "memcached_limit": {"type": "integer", "description": "Memcached limit in MB"}, "upload_max_filesize": {"type": "integer", "description": "Maximum upload file size in MB"}, "operating_system": {"type": "string", "description": "Operating system codename"}}}, "reference": {"type": "string", "description": "The code reference (branch, tag, or commit) deployed to this environment"}, "code_switch_status": {"type": "string", "description": "The status of the Switch Code action", "enum": ["IDLE", "IN_PROGRESS"]}, "ssh_url": {"type": "string", "format": "uri", "description": "The SSH connection string for accessing this environment"}}, "required": ["id", "name", "label", "status", "flags", "properties", "reference", "code_switch_status", "ssh_url"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"codebase": {"allOf": [{"type": "object", "description": "Embedded codebase resource", "properties": {"id": {"type": "string", "description": "The unique identifier of the codebase"}}, "required": ["id"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc"}, "codebase": {"href": "https://api.acquia.com/v3/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323"}}, "id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", "name": "environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc", "label": "Environment_3e8ecbec-ea7c-4260-8414-ef2938c859bc", "description": "Description of 3e8ecbec-ea7c-4260-8414-ef2938c859bc", "status": "normal", "flags": {"production": false, "protection_mode": false}, "properties": {"version": "8.3", "max_execution_time": 10, "memory_limit": 192, "apcu": 32, "client_max_body_size": 192, "max_input_vars": 1000, "max_post_size": 256, "memcached_limit": 128, "upload_max_filesize": 192, "operating_system": "focal"}, "reference": "tag/v3.1", "code_switch_status": "IDLE", "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", "_embedded": {"codebase": {"id": "d3f7270e-c45f-4801-9308-5e8afe84a323", "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323"}}}}}}}, "links": {"self": {"operationId": "findEnvironmentByEnvironmentId", "parameters": {"environmentId": "$request.path.environmentId"}}}}, "Environment_Service_API_EnvironmentCollection": {"description": "Environment collection", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "description": "Environment properties", "properties": {"id": {"type": "string", "description": "The unique identifier of the environment", "pattern": "^[a-zA-Z0-9-]+$"}, "name": {"type": "string", "description": "The machine name of the environment"}, "label": {"type": "string", "description": "The human-readable label of the environment"}, "description": {"type": "string", "description": "A description of the environment"}, "status": {"type": "string", "description": "The current status of the environment", "enum": ["normal", "allocated", "launching", "killed", "cancelled", "stopped"]}, "flags": {"type": "object", "description": "Environment configuration flags", "additionalProperties": {"type": "boolean"}}, "properties": {"type": "object", "description": "Environment PHP and server properties", "properties": {"version": {"type": "string", "description": "PHP version"}, "max_execution_time": {"type": "integer", "description": "Maximum execution time in seconds"}, "memory_limit": {"type": "integer", "description": "Memory limit in MB"}, "apcu": {"type": "integer", "description": "APCu cache size in MB"}, "client_max_body_size": {"type": "integer", "description": "Maximum client body size in MB"}, "max_input_vars": {"type": "integer", "description": "Maximum number of input variables"}, "max_post_size": {"type": "integer", "description": "Maximum POST size in MB"}, "memcached_limit": {"type": "integer", "description": "Memcached limit in MB"}, "upload_max_filesize": {"type": "integer", "description": "Maximum upload file size in MB"}, "operating_system": {"type": "string", "description": "Operating system codename"}}}, "reference": {"type": "string", "description": "The code reference (branch, tag, or commit) deployed to this environment"}, "code_switch_status": {"type": "string", "description": "The status of the Switch Code action", "enum": ["IDLE", "IN_PROGRESS"]}, "ssh_url": {"type": "string", "format": "uri", "description": "The SSH connection string for accessing this environment"}}, "required": ["id", "name", "label", "status", "flags", "properties", "reference", "code_switch_status", "ssh_url"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/sites/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2{&offset}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", "name": "dev", "label": "Dev", "description": "Development environment", "status": "normal", "reference": "branch/main", "code_switch_status": "IDLE", "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", "flags": {"production": false, "protection_mode": false}, "properties": {"version": "8.3"}, "_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc"}}}]}}}}}, "Environment_Service_API_FilterableEnvironmentCollection": {"description": "Environment collection", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "description": "Environment properties", "properties": {"id": {"type": "string", "description": "The unique identifier of the environment", "pattern": "^[a-zA-Z0-9-]+$"}, "name": {"type": "string", "description": "The machine name of the environment"}, "label": {"type": "string", "description": "The human-readable label of the environment"}, "description": {"type": "string", "description": "A description of the environment"}, "status": {"type": "string", "description": "The current status of the environment", "enum": ["normal", "allocated", "launching", "killed", "cancelled", "stopped"]}, "flags": {"type": "object", "description": "Environment configuration flags", "additionalProperties": {"type": "boolean"}}, "properties": {"type": "object", "description": "Environment PHP and server properties", "properties": {"version": {"type": "string", "description": "PHP version"}, "max_execution_time": {"type": "integer", "description": "Maximum execution time in seconds"}, "memory_limit": {"type": "integer", "description": "Memory limit in MB"}, "apcu": {"type": "integer", "description": "APCu cache size in MB"}, "client_max_body_size": {"type": "integer", "description": "Maximum client body size in MB"}, "max_input_vars": {"type": "integer", "description": "Maximum number of input variables"}, "max_post_size": {"type": "integer", "description": "Maximum POST size in MB"}, "memcached_limit": {"type": "integer", "description": "Memcached limit in MB"}, "upload_max_filesize": {"type": "integer", "description": "Maximum upload file size in MB"}, "operating_system": {"type": "string", "description": "Operating system codename"}}}, "reference": {"type": "string", "description": "The code reference (branch, tag, or commit) deployed to this environment"}, "code_switch_status": {"type": "string", "description": "The status of the Switch Code action", "enum": ["IDLE", "IN_PROGRESS"]}, "ssh_url": {"type": "string", "format": "uri", "description": "The SSH connection string for accessing this environment"}}, "required": ["id", "name", "label", "status", "flags", "properties", "reference", "code_switch_status", "ssh_url"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/codebases/d3f7270e-c45f-4801-9308-5e8afe84a323/environments?limit=2&offset=0{&filter}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", "name": "dev", "label": "Dev", "description": "Development environment", "status": "normal", "reference": "branch/main", "code_switch_status": "IDLE", "ssh_url": "ssh://site.dev@sitedev.ssh.hosted.acquia-sites.com", "flags": {"production": false, "protection_mode": false}, "properties": {"version": "8.3"}, "_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc"}}}]}}}}}, "Environment_Service_API_SiteInstance": {"description": "Site Instance details", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "description": "Site Instance properties", "properties": {"site_id": {"type": "string", "description": "The unique identifier of the site", "pattern": "^[a-zA-Z0-9-]+$"}, "environment_id": {"type": "string", "description": "The unique identifier of the environment", "pattern": "^[a-zA-Z0-9-]+$"}, "status": {"type": "string", "description": "The current status of the site instance", "enum": ["active", "creating", "create-failed", "updating", "update-failed", "deleting", "deleted", "delete-failed"]}, "health_status": {"type": "object", "description": "Health status information for the site instance", "properties": {"code": {"type": "string", "description": "Health status code"}, "summary": {"type": "string", "description": "Summary of the health status"}, "details": {"type": "string", "description": "Detailed health status information"}}, "required": ["code", "summary", "details"]}, "domains": {"type": "array", "description": "List of domains associated with the site instance", "items": {"type": "string"}}, "deployment_order": {"type": ["integer", "null"], "description": "The order in which this site instance is deployed relative to others.", "example": 1}, "delete_at": {"type": ["string", "null"], "format": "date-time", "description": "The scheduled deletion date-time for this site instance, if set."}, "date_marked_for_deletion": {"type": ["string", "null"], "format": "date-time", "description": "The date-time when this site instance was marked for deletion."}, "protection_mode": {"type": ["object", "null"], "description": "The current protection mode of the site instance", "properties": {"is_enabled": {"type": "boolean", "description": "Indicates whether the protection mode is enabled for the site instance"}, "is_inherited": {"type": "boolean", "description": "Indicates whether the protection mode is inherited from the environment"}}, "required": ["is_enabled", "is_inherited"]}}, "required": ["site_id", "environment_id", "status", "health_status", "domains"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323"}}, "site_id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", "status": "active", "health_status": {"code": "OK", "summary": "The health status is OK.", "details": "The site instance is active"}, "domains": ["example.com", "example-2.com"], "protection_mode": {"is_enabled": true, "is_inherited": true}}}}, "links": {"self": {"operationId": "findSiteInstanceBySiteIdAndEnvironmentId", "parameters": {"siteId": "$request.path.siteId", "environmentId": "$request.path.environmentId"}}}}, "Environment_Service_API_Domain": {"description": "Domain details", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "description": "Domain properties", "properties": {"name": {"type": "string", "description": "The domain name."}, "is_managed": {"type": "boolean", "description": "Whether the domain is managed by Acquia."}}, "required": ["name", "is_managed"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"name": "example.com", "is_managed": false, "_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com"}}}}}, "links": {"self": {"operationId": "findDomainBySiteIdAndEnvironmentIdAndDomainName", "parameters": {"siteId": "$request.path.siteId", "environmentId": "$request.path.environmentId", "domainName": "$request.path.domainName"}}}}, "Environment_Service_API_DomainCollection": {"description": "Domain collection", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "description": "Domain properties", "properties": {"name": {"type": "string", "description": "The domain name."}, "is_managed": {"type": "boolean", "description": "Whether the domain is managed by Acquia."}}, "required": ["name", "is_managed"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains?limit=2&offset=0{&sort}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 2, "offset": 0}, "_embedded": {"items": [{"name": "example.com", "is_managed": false, "_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com"}}}]}}}}}, "Environment_Service_API_DomainStatus": {"description": "Domain DNS status details", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "description": "Domain DNS status properties", "properties": {"hostname": {"type": "string", "description": "The domain name."}, "site_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Identifier of the site this domain belongs to."}, "environment_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Identifier of the environment this domain belongs to."}, "ip_addresses": {"type": "array", "description": "List of IP addresses resolving for this domain.", "items": {"type": "string"}}, "cnames": {"type": "array", "description": "List of CNAME records resolving for this domain.", "items": {"type": "string"}}, "flags": {"type": "object", "description": "Status flags for the domain.", "properties": {"default": {"type": "boolean", "description": "Whether this is the default domain."}, "active": {"type": "boolean", "description": "Whether the domain is active."}, "dns_resolves": {"type": "boolean", "description": "Whether the domain DNS resolves correctly."}, "acquia_hosted": {"type": "boolean", "description": "Whether the domain is hosted on Acquia infrastructure."}}, "required": ["default", "active", "dns_resolves", "acquia_hosted"]}}, "required": ["hostname", "site_id", "environment_id", "ip_addresses", "cnames", "flags"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"hostname": "example.com", "site_id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc", "environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323", "ip_addresses": ["203.0.113.10"], "cnames": [], "flags": {"default": false, "active": true, "dns_resolves": true, "acquia_hosted": true}, "_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/domains/example.com/status"}}}}}}, "Environment_Service_API_Database": {"description": "Database details", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "description": "Database properties", "properties": {"database_name": {"type": "string", "description": "The name of the database."}, "database_role": {"type": "string", "description": "The role of the database (e.g. the site username)."}}, "required": ["database_name", "database_role"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"database_name": "site_dev", "database_role": "site_dev_user", "_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database"}}}}}, "links": {"self": {"operationId": "findDatabaseBySiteIdAndEnvironmentId", "parameters": {"siteId": "$request.path.siteId", "environmentId": "$request.path.environmentId"}}}}, "Environment_Service_API_DatabaseConnection": {"description": "Database connection credential details", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "description": "Database connection credential properties", "properties": {"db_host": {"type": "string", "description": "The database host."}, "name": {"type": "string", "description": "The database name."}, "password": {"type": "string", "description": "The database password."}, "user_name": {"type": "string", "description": "The database username."}, "ssh_host": {"type": "string", "description": "The SSH host for tunneling to the database."}}, "required": ["db_host", "name", "password", "user_name", "ssh_host"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"db_host": "db.example.com", "name": "site_dev", "password": "s3cr3t", "user_name": "site_dev_user", "ssh_host": "site.dev.ssh.hosted.acquia-sites.com", "_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/connection"}}}}}}, "Environment_Service_API_DatabaseBackup": {"description": "Database backup details", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "description": "Database backup properties", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the database backup."}, "database_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Identifier of the database this backup belongs to."}, "created_at": {"type": "string", "format": "date-time", "description": "Timestamp when the backup was created."}, "type": {"type": "string", "enum": ["DAILY", "ON_DEMAND"], "description": "The type of backup."}}, "required": ["id", "database_id", "created_at", "type"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "database_id": "b2c3d4e5-f6a7-8901-bcde-f01234567891", "created_at": "2025-04-01T02:00:00.000Z", "type": "DAILY", "_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups/a1b2c3d4-e5f6-7890-abcd-ef1234567890"}, "download": {"href": "https://s3.amazonaws.com/acquia-backups/backup-a1b2c3d4.sql.gz?X-Amz-Expires=3600&X-Amz-Signature=abc123"}}}}}, "links": {"self": {"operationId": "findDatabaseBackupBySiteIdAndEnvironmentIdAndBackupId", "parameters": {"siteId": "$request.path.siteId", "environmentId": "$request.path.environmentId", "backupId": "$request.path.backupId"}}}}, "Environment_Service_API_DatabaseBackupCollection": {"description": "Database backup collection", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "description": "Database backup properties", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the database backup."}, "database_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Identifier of the database this backup belongs to."}, "created_at": {"type": "string", "format": "date-time", "description": "Timestamp when the backup was created."}, "type": {"type": "string", "enum": ["DAILY", "ON_DEMAND"], "description": "The type of backup."}}, "required": ["id", "database_id", "created_at", "type"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups?limit=2&offset=0{&sort}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "database_id": "b2c3d4e5-f6a7-8901-bcde-f01234567891", "created_at": "2025-04-01T02:00:00.000Z", "type": "DAILY", "_links": {"self": {"href": "https://api.acquia.com/v3/site-instances/3e8ecbec-ea7c-4260-8414-ef2938c859bc.d3f7270e-c45f-4801-9308-5e8afe84a323/database/backups/a1b2c3d4-e5f6-7890-abcd-ef1234567890"}}}]}}}}}, "Environment_Service_API_EgressIpCollection": {"description": "Egress IP collection", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "description": "Egress IP properties", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the egress IP."}, "status": {"type": "string", "description": "Current status of the egress IP."}, "ipv4": {"type": "string", "description": "The IPv4 address."}, "ipv6": {"type": ["string", "null"], "description": "The IPv6 address, if assigned."}, "flags": {"type": "object", "description": "Status flags for the egress IP.", "additionalProperties": {"type": "boolean"}}}, "required": ["id", "status", "ipv4", "flags"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/eips?limit=25&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/eips?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/eips?limit=25{&offset}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 25, "offset": 0}, "_embedded": {"items": [{"id": "eip-a1b2c3d4-e5f6-7890-abcd-ef1234567890", "status": "active", "ipv4": "203.0.113.10", "ipv6": null, "flags": {"is_primary": true}}]}}}}}, "Environment_Service_API_TrustedProxies": {"description": "Trusted proxy configuration details", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "description": "Trusted proxy configuration properties", "properties": {"cidrs_ipv4": {"type": "array", "description": "List of trusted IPv4 CIDR blocks.", "items": {"type": "string"}}, "cidrs_ipv6": {"type": "array", "description": "List of trusted IPv6 CIDR blocks.", "items": {"type": "string"}}, "associated_cdns": {"type": "object", "description": "Map of CDN configurations associated with this environment, keyed by CDN name.", "additionalProperties": {"type": "object", "properties": {"label": {"type": "string", "description": "Display label for the CDN."}, "is_enabled": {"type": "boolean", "description": "Whether the CDN is enabled."}}, "required": ["label", "is_enabled"]}}}, "required": ["cidrs_ipv4", "cidrs_ipv6", "associated_cdns"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"cidrs_ipv4": ["203.0.113.0/24"], "cidrs_ipv6": [], "associated_cdns": {"cloudflare": {"label": "Cloudflare", "is_enabled": true}}, "_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/trusted-proxies"}}}}}, "links": {"self": {"operationId": "findTrustedProxiesByEnvironmentId", "parameters": {"environmentId": "$request.path.environmentId"}}}}, "Environment_Service_API_PrivateNetwork": {"description": "Private network details", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "description": "Private network reference properties", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the private network."}, "label": {"type": ["string", "null"], "description": "Human-readable label for the private network."}}, "required": ["id"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"id": "pn-a1b2c3d4-e5f6-7890-abcd-ef1234567890", "label": "Production VPC", "_links": {"self": {"href": "https://api.acquia.com/v3/environments/3e8ecbec-ea7c-4260-8414-ef2938c859bc/private-network"}}}}}, "links": {"self": {"operationId": "findPrivateNetworkByEnvironmentId", "parameters": {"environmentId": "$request.path.environmentId"}}}}, "Environment_Service_API_DomainPattern": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the domain pattern."}, "pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].acme.com/app). The [site-name] token is mandatory; [environment-name] is optional at environment level. Domain rules (enforced in service layer): \u2264 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] \u2264 14 chars). One pattern per environment.\n", "example": "[site-name].acme.com"}}, "required": ["id", "pattern"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"id": "11111111-1111-1111-1111-111111111111", "pattern": "[site-name].acme.com", "_links": {"self": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111"}}}}}, "links": {"self": {"operationId": "findDomainPatternByEnvironmentIdAndPatternId", "parameters": {"environmentId": "$request.path.environmentId", "patternId": "$request.path.patternId"}}}}, "Environment_Service_API_DomainPatternCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the domain pattern."}, "pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].acme.com/app). The [site-name] token is mandatory; [environment-name] is optional at environment level. Domain rules (enforced in service layer): \u2264 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] \u2264 14 chars). One pattern per environment.\n", "example": "[site-name].acme.com"}}, "required": ["id", "pattern"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"domain_pattern_collection": {"summary": "Domain pattern collection", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns"}, "limit": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25{&offset}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25&offset=0{&sort}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 25, "offset": 0}, "_embedded": {"items": [{"id": "11111111-1111-1111-1111-111111111111", "pattern": "[site-name].acme.com", "_links": {"self": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns/11111111-1111-1111-1111-111111111111"}}}]}}}, "domain_pattern_collection_empty": {"summary": "Empty domain pattern collection", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns"}, "limit": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25{&offset}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/environments/11111111-1111-1111-1111-111111111111/domain-patterns?limit=25&offset=0{&sort}", "templated": true}}, "count": 0, "total": 0, "pagination": {"total": 0, "limit": 25, "offset": 0}, "_embedded": {"items": []}}}}}}}, "SSH_Key_Service_API_SshKeyCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}, {"properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}, {"properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}, {"properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering."}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}, {"properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting."}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}}}]}, {"type": "object", "description": "A collection of SSH keys.", "properties": {"_embedded": {"type": "object", "description": "A collection of SSH keys matching the request parameters.", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "required": ["id", "label", "public_key", "fingerprint", "created_at", "user_id"], "description": "Details an SSH key.", "properties": {"id": {"type": "string", "description": "The unique identifier of the SSH key.", "pattern": "^[a-zA-Z0-9-]+$"}, "label": {"type": "string", "description": "The human-readable key label."}, "public_key": {"type": "string", "description": "The public key.", "minLength": 64}, "fingerprint": {"type": "string", "description": "The public key fingerprint.", "pattern": "^[A-Za-z0-9:+/=.-]+$"}, "created_at": {"type": "string", "format": "date-time", "description": "The key creation date."}, "user_id": {"type": "string", "description": "The unique identifier of the user who owns this SSH key.", "pattern": "^[a-zA-Z0-9-]+$"}}}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"ssh_keys": {"summary": "SSH key collection", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/ssh-keys?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/ssh-keys?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/ssh-keys?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/ssh-keys?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/ssh-keys?limit=2&offset=0{&sort}", "templated": true}, "next": {"href": "https://api.acquia.com/v3/ssh-keys?limit=2&offset=2"}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "1acbb1a5-e864-4b8e-a3f9-b1ed462afd25", "label": "primary", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQChwPHzTTDKDpSbpa2+d22LcbQmsw92eLsUK3Fmei1fiGDkd34NsYCN8m7lsi3NbvdMS83CtPQPWiCveYPzFs1/hHc4PYj8opD2CNnr5iWVVbyaulCYHCgVv4aB/ojcexg8q483A4xJeF15TiCr/gu34rK6ucTvC/tn/rCwJBudczvEwt0klqYwv8Cl/ytaQboSuem5KgSjO3lMrb6CWtfSNhE43ZOw+UBFBqxIninN868vGMkIv9VY34Pwj54rPn/ItQd6Ef4B0KHHaGmzK0vfP+AK7FxNMoHnj3iYT33KZNqtDozdn5tYyH/bThPebEtgqUn+/w5l6wZIC/8zzvls/127ngHk+jNa0PlNyS2TxhPUK4NaPHIEnnrlp07JEYC4ImcBjaYCWAdcTcUkcJjwZQkN4bGmyO9cjICH98SdLD/HxqzTHeaYDbAX/Hu9HfaBb5dXLWsjw3Xc6hoVnUUZbMQyfgb0KgxDLh92eNGxJkpZiL0VDNOWCxDWsNpzwhLNkLqCvI6lyxiLaUzvJAk6dPaRhExmCbU1lDO2eR0FdSwC1TEhJOT9eDIK1r2hztZKs2oa5FNFfB/IFHVWasVFC9N2h/r/egB5zsRxC9MqBLRBq95NBxaRSFng6ML5WZSw41Qi4C/JWVm89rdj2WqScDHYyAdwyyppWU4T5c9Fmw== example@example.com", "fingerprint": "SHA256:7a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8g9h0i1j2k3l4m5n6o7p8q9r0s1", "created_at": "2024-10-01T12:30:00Z", "user_id": "a47ac10b-58cc-4372-a567-0e02b2c3d479", "_links": {"self": {"href": "https://api.acquia.com/v3/ssh-keys/1acbb1a5-e864-4b8e-a3f9-b1ed462afd25"}}}, {"id": "2bcbb1a5-e864-4b8e-a3f9-b1ed462afd26", "label": "backup", "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFf2T1I1d8T1B9Q1b8pS6m2xvY3i5q8sNnU5oQwY5vS9 example@example.com", "fingerprint": "SHA256:9b8c7d6e5f4a3b2c1d0e9f8a7b6c5d4e3f2a1b0c9d8e7f6a5b4c3d2e1f0a9b8", "created_at": "2024-10-02T09:15:00Z", "user_id": "b58bd21c-69dd-5483-b678-1f13c3d4e580", "_links": {"self": {"href": "https://api.acquia.com/v3/ssh-keys/2bcbb1a5-e864-4b8e-a3f9-b1ed462afd26"}}}]}}}}}}}, "SSH_Key_Service_API_SshKey": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "required": ["id", "label", "public_key", "fingerprint", "created_at", "user_id"], "description": "Details an SSH key.", "properties": {"id": {"type": "string", "description": "The unique identifier of the SSH key.", "pattern": "^[a-zA-Z0-9-]+$"}, "label": {"type": "string", "description": "The human-readable key label."}, "public_key": {"type": "string", "description": "The public key.", "minLength": 64}, "fingerprint": {"type": "string", "description": "The public key fingerprint.", "pattern": "^[A-Za-z0-9:+/=.-]+$"}, "created_at": {"type": "string", "format": "date-time", "description": "The key creation date."}, "user_id": {"type": "string", "description": "The unique identifier of the user who owns this SSH key.", "pattern": "^[a-zA-Z0-9-]+$"}}}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"id": "1acbb1a5-e864-4b8e-a3f9-b1ed462afd25", "label": "primary", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQChwPHzTTDKDpSbpa2+d22LcbQmsw92eLsUK3Fmei1fiGDkd34NsYCN8m7lsi3NbvdMS83CtPQPWiCveYPzFs1/hHc4PYj8opD2CNnr5iWVVbyaulCYHCgVv4aB/ojcexg8q483A4xJeF15TiCr/gu34rK6ucTvC/tn/rCwJBudczvEwt0klqYwv8Cl/ytaQboSuem5KgSjO3lMrb6CWtfSNhE43ZOw+UBFBqxIninN868vGMkIv9VY34Pwj54rPn/ItQd6Ef4B0KHHaGmzK0vfP+AK7FxNMoHnj3iYT33KZNqtDozdn5tYyH/bThPebEtgqUn+/w5l6wZIC/8zzvls/127ngHk+jNa0PlNyS2TxhPUK4NaPHIEnnrlp07JEYC4ImcBjaYCWAdcTcUkcJjwZQkN4bGmyO9cjICH98SdLD/HxqzTHeaYDbAX/Hu9HfaBb5dXLWsjw3Xc6hoVnUUZbMQyfgb0KgxDLh92eNGxJkpZiL0VDNOWCxDWsNpzwhLNkLqCvI6lyxiLaUzvJAk6dPaRhExmCbU1lDO2eR0FdSwC1TEhJOT9eDIK1r2hztZKs2oa5FNFfB/IFHVWasVFC9N2h/r/egB5zsRxC9MqBLRBq95NBxaRSFng6ML5WZSw41Qi4C/JWVm89rdj2WqScDHYyAdwyyppWU4T5c9Fmw== example@example.com", "fingerprint": "SHA256:7a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8g9h0i1j2k3l4m5n6o7p8q9r0s1", "created_at": "2024-10-01T12:30:00Z", "user_id": "a47ac10b-58cc-4372-a567-0e02b2c3d479", "_links": {"self": {"href": "https://api.acquia.com/v3/ssh-keys/1acbb1a5-e864-4b8e-a3f9-b1ed462afd25"}}}}}, "links": {"self": {"operationId": "findSshKeyBySshKeyId", "parameters": {"sshKeyId": "$request.path.sshKeyId"}}}}, "SSH_Key_Service_API_UnauthorizedError": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "SSH_Key_Service_API_ForbiddenError": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "SSH_Key_Service_API_NotFoundError": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "SSH_Key_Service_API_ValidationError": {"description": "Bad Request - Validation Error", "content": {"application/json": {"schema": {"type": "object", "required": ["error", "message"], "description": "A validation error.", "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "object", "description": "The validation error message keyed by its field or group name.", "additionalProperties": {"type": "string"}}}}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required."}}}}}, "SSH_Key_Service_API_InvalidOperationError": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "SSH_Key_Service_API_InternalServerError": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}, "Site_Service_API_ForbiddenError": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "Site_Service_API_InternalServerError": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}, "Site_Service_API_InvalidOperationError": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "Site_Service_API_NotFoundError": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "Site_Service_API_UnauthorizedError": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "Site_Service_API_ValidationError": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "Site_Service_API_Site": {"description": "Site details", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "description": "A Site resource", "properties": {"id": {"type": "string", "description": "The unique identifier of the site", "pattern": "^[a-zA-Z0-9-]+$", "example": "12345678-1234-1234-1234-123456789012"}, "name": {"type": "string", "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", "minLength": 1, "maxLength": 14, "pattern": "^[a-z][a-z0-9]*$", "example": "mysite"}, "label": {"type": "string", "description": "The human-readable label of the site", "minLength": 1, "maxLength": 50, "example": "My Site 1"}, "description": {"type": "string", "description": "A description of the site", "maxLength": 512, "example": "A production site for the marketing team."}, "codebase_id": {"type": "string", "description": "The unique identifier of the codebase this site belongs to", "pattern": "^[a-zA-Z0-9-]+$", "example": "550e8400-e29b-41d4-a716-446655441210"}, "status": {"type": "string", "description": "The current lifecycle status of the site. ready indicates the site is active and operational. marked-for-deletion indicates the site has been scheduled for deletion and can still be recovered.\n", "enum": ["ready", "marked-for-deletion"], "example": "ready"}, "delete_at": {"type": "string", "format": "date-time", "description": "ISO 8601 datetime indicating when the site is scheduled for deletion. Only present when status is marked-for-deletion.", "example": "2025-06-15T00:00:00Z"}}, "required": ["id", "name", "label", "codebase_id", "status"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_links": {"properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "codebase": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890"}, "codebase": {"href": "https://api.acquia.com/v3/codebases/a9b8c7d6-e5f4-3210-abcd-ef9876543210"}}, "id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", "name": "mysite", "label": "My Site", "description": "This is a description of my site.", "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", "status": "ready"}}}, "links": {"self": {"operationId": "findSiteBySiteId", "parameters": {"siteId": "$request.path.siteId"}}}}, "Site_Service_API_SiteCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "description": "A Site resource", "properties": {"id": {"type": "string", "description": "The unique identifier of the site", "pattern": "^[a-zA-Z0-9-]+$", "example": "12345678-1234-1234-1234-123456789012"}, "name": {"type": "string", "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", "minLength": 1, "maxLength": 14, "pattern": "^[a-z][a-z0-9]*$", "example": "mysite"}, "label": {"type": "string", "description": "The human-readable label of the site", "minLength": 1, "maxLength": 50, "example": "My Site 1"}, "description": {"type": "string", "description": "A description of the site", "maxLength": 512, "example": "A production site for the marketing team."}, "codebase_id": {"type": "string", "description": "The unique identifier of the codebase this site belongs to", "pattern": "^[a-zA-Z0-9-]+$", "example": "550e8400-e29b-41d4-a716-446655441210"}, "status": {"type": "string", "description": "The current lifecycle status of the site. ready indicates the site is active and operational. marked-for-deletion indicates the site has been scheduled for deletion and can still be recovered.\n", "enum": ["ready", "marked-for-deletion"], "example": "ready"}, "delete_at": {"type": "string", "format": "date-time", "description": "ISO 8601 datetime indicating when the site is scheduled for deletion. Only present when status is marked-for-deletion.", "example": "2025-06-15T00:00:00Z"}}, "required": ["id", "name", "label", "codebase_id", "status"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"site_collection": {"summary": "Site collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/sites?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/sites?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/sites?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/sites?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/sites?limit=2&offset=0{&sort}", "templated": true}, "next": {"href": "https://api.acquia.com/v3/sites?limit=2&offset=2"}}, "count": 2, "total": 4, "pagination": {"total": 4, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", "name": "mysite", "label": "My Site", "description": "A description of my site.", "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", "status": "ready", "_links": {"self": {"href": "https://api.acquia.com/v3/sites/f1a2b3c4-d5e6-7890-abcd-ef1234567890"}}}, {"id": "e2b3c4d5-f6a7-8901-bcde-f12345678901", "name": "anothersite", "label": "Another Site", "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", "status": "marked-for-deletion", "delete_at": "2025-01-01T00:00:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/sites/e2b3c4d5-f6a7-8901-bcde-f12345678901"}}}]}}}}}}}, "Federated_Authentication_API_IdentityProvider": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "properties": {"identity_provider_id": {"type": "string", "description": "Unique identifier for the identity provider."}, "label": {"type": "string", "description": "The name of the Identity Provider."}, "subscription_id": {"type": "string", "description": "Unique identifier for the subscription that the Identity Provider belongs to."}, "idp_entity_id": {"type": "string", "format": "uri", "description": "The Identity Provider Entity ID."}, "sp_entity_id": {"type": "string", "format": "uri", "description": "The Service Provider Entity ID."}, "sso_url": {"type": "string", "format": "uri", "description": "The Single Sign-On URL for the Identity Provider."}, "certificate": {"type": "string", "description": "The X.509 certificate used for SAML authentication."}, "created_at": {"type": "string", "format": "date-time", "description": "Timestamp when the Identity Provider was created."}}, "required": ["identity_provider_id", "label", "subscription_id", "idp_entity_id", "sp_entity_id", "sso_url", "certificate", "created_at"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"identity_provider_id": "908914ec-2354-4fb1-9298-637247eccc3a", "label": "Acme Corporation Azure AD", "subscription_id": "sub-123", "idp_entity_id": "https://idp.acme.com/saml", "sp_entity_id": "https://sp.acme.com/saml", "sso_url": "https://acme.com/sso", "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", "created_at": "2026-04-15T11:00:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a"}, "sso_policy": {"href": "https://api.acquia.com/v3/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a/policies/sso"}}}}}, "links": {"self": {"operationId": "findIdentityProviderByIdentityProviderId", "parameters": {"identityProviderId": "$response.body#/identity_provider_id"}}, "update": {"operationId": "updateIdentityProviderByIdentityProviderId", "parameters": {"identityProviderId": "$response.body#/identity_provider_id"}}, "delete": {"operationId": "deleteIdentityProviderByIdentityProviderId", "parameters": {"identityProviderId": "$response.body#/identity_provider_id"}}, "enable_sso_policy": {"operationId": "enableIdentityProviderSSOPolicyByIdentityProviderId", "parameters": {"identityProviderId": "$response.body#/identity_provider_id"}}, "disable_sso_policy": {"operationId": "disableIdentityProviderSSOPolicyByIdentityProviderId", "parameters": {"identityProviderId": "$response.body#/identity_provider_id"}}}}, "Federated_Authentication_API_IdentityProviderCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "properties": {"identity_provider_id": {"type": "string", "description": "Unique identifier for the identity provider."}, "label": {"type": "string", "description": "The name of the Identity Provider."}, "subscription_id": {"type": "string", "description": "Unique identifier for the subscription that the Identity Provider belongs to."}, "idp_entity_id": {"type": "string", "format": "uri", "description": "The Identity Provider Entity ID."}, "sp_entity_id": {"type": "string", "format": "uri", "description": "The Service Provider Entity ID."}, "sso_url": {"type": "string", "format": "uri", "description": "The Single Sign-On URL for the Identity Provider."}, "certificate": {"type": "string", "description": "The X.509 certificate used for SAML authentication."}, "created_at": {"type": "string", "format": "date-time", "description": "Timestamp when the Identity Provider was created."}}, "required": ["identity_provider_id", "label", "subscription_id", "idp_entity_id", "sp_entity_id", "sso_url", "certificate", "created_at"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"identity_provider_response": {"summary": "Identity provider collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?limit=2&offset=2"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?offset=2{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?limit=2&offset=2{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?limit=2&offset=2{&sort}", "templated": true}, "prev": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?limit=2&offset=0"}, "next": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/identity-providers?offset=4&limit=2"}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"identity_provider_id": "908914ec-2354-4fb1-9298-637247eccc3a", "label": "Acme Corporation Azure AD", "subscription_id": "sub-123", "idp_entity_id": "https://idp.acme.com/saml", "sp_entity_id": "https://sp.acme.com/saml", "sso_url": "https://acme.com/sso", "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", "created_at": "2026-04-15T11:00:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a"}, "sso_policy": {"href": "https://api.acquia.com/v3/identity-providers/908914ec-2354-4fb1-9298-637247eccc3a/policies/sso"}}}, {"identity_provider_id": "123456ec-2354-4fb1-9298-637247eccc3b", "label": "Acme Research Ping Identity", "subscription_id": "sub-123", "idp_entity_id": "https://idp-research.acme.com/saml", "sp_entity_id": "https://sp-research.acme.com/saml", "sso_url": "https://research.acme.com/sso", "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", "created_at": "2026-04-20T14:20:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/identity-providers/123456ec-2354-4fb1-9298-637247eccc3b"}, "sso_policy": {"href": "https://api.acquia.com/v3/identity-providers/123456ec-2354-4fb1-9298-637247eccc3b/policies/sso"}}}]}}}}}}}, "Federated_Authentication_API_SsoDomain": {"description": "OK. The `_links` object always contains `self`. Additional links are state-conditional: `verify` is present when `health.code` is `202` or `404` (POST it to initiate or retry DNS TXT record verification); `identity_providers` is present when the domain is referenced by one or more Identity Provider policies (follows to a filtered list of those IdPs; when present the domain cannot be deleted \u2014 remove it from all policies first).", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "properties": {"domain_id": {"type": "string", "description": "Unique identifier for the domain."}, "domain": {"type": "string", "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", "description": "The domain name (e.g., \"acme.com\")."}, "subscription_id": {"type": "string", "description": "Unique identifier for the subscription that the domain belongs to."}, "health": {"type": "object", "description": "The overall verification health of the domain. Uses the same code semantics as the platform email domain-verification system: `200` verified, `202` verification pending or in progress, `404` DNS record not found or could not be validated.", "properties": {"code": {"type": "string", "enum": ["200", "202", "404"], "description": "Machine-readable verification status code. `200` \u2014 verified. `202` \u2014 verification pending or in progress; retry after propagation. `404` \u2014 DNS TXT record not found or does not match expected value."}, "summary": {"type": "string", "description": "Short human-readable label for the verification state (e.g., \"Verified\", \"Verification pending\", \"Missing DNS record\")."}, "details": {"type": "string", "description": "Actionable explanation of the current state. For `404`, describes what was checked and what the customer should do next."}}, "required": ["code", "summary", "details"]}, "verification_record": {"type": "object", "description": "DNS TXT record the customer must publish to verify domain ownership.", "properties": {"type": {"type": "string", "const": "TXT", "description": "DNS record type."}, "host": {"type": "string", "description": "DNS record host name."}, "value": {"type": "string", "description": "Expected DNS record value."}, "health": {"type": "object", "description": "Verification health specific to this DNS record. Anchors the failure reason to the exact record the customer needs to fix, matching the per-record health pattern used in platform email domain verification.", "properties": {"code": {"type": "string", "enum": ["200", "202", "404"], "description": "`200` \u2014 record found and value matches. `202` \u2014 check in progress. `404` \u2014 record not found or value does not match."}, "summary": {"type": "string", "description": "Short human-readable label for this record's verification state."}, "details": {"type": "string", "description": "Actionable explanation; for `404`, states what was checked and what to fix."}}, "required": ["code", "summary", "details"]}}, "required": ["type", "host", "value", "health"]}, "verified_at": {"type": "string", "format": "date-time", "description": "Timestamp when the domain was successfully verified. Present only when `health.code` is `200`."}}, "required": ["domain_id", "domain", "subscription_id", "health", "verification_record"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "examples": {"pending_verification": {"summary": "Domain awaiting DNS verification", "description": "A newly created domain whose DNS TXT record has not yet been confirmed. `health.code` is `202`; the `verify` link is present so the client can trigger or retry the check. `identity_providers` is absent because no policy can reference an unverified domain.", "value": {"domain_id": "dom-789", "domain": "acme.corp", "subscription_id": "sub-123", "health": {"code": "202", "summary": "Verification pending", "details": "Acquia is waiting to confirm the DNS TXT record. Ensure the record has been published and allow time for DNS propagation, then retry verification."}, "verification_record": {"type": "TXT", "host": "_acquia-challenge.acme.corp", "value": "xyz789abc123", "health": {"code": "202", "summary": "Check in progress", "details": "The TXT record check has not yet completed."}}, "_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-789"}, "verify": {"href": "https://api.acquia.com/v3/sso-domains/dom-789/actions/verify"}}}}, "failed_verification": {"summary": "Domain verification failed \u2014 DNS record not found", "description": "A domain whose TXT record could not be found. `health.code` is `404`; `details` names the exact record to check. The `verify` link is present so the client can retry after fixing the DNS entry.", "value": {"domain_id": "dom-789", "domain": "acme.corp", "subscription_id": "sub-123", "health": {"code": "404", "summary": "Missing DNS record", "details": "Acquia could not verify the presence of the required TXT DNS record at _acquia-challenge.acme.corp. Ensure the record is published with the correct value and retry verification."}, "verification_record": {"type": "TXT", "host": "_acquia-challenge.acme.corp", "value": "xyz789abc123", "health": {"code": "404", "summary": "Missing DNS record", "details": "The TXT record at _acquia-challenge.acme.corp was not found or does not match the expected value xyz789abc123."}}, "_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-789"}, "verify": {"href": "https://api.acquia.com/v3/sso-domains/dom-789/actions/verify"}}}}, "verified_in_use": {"summary": "Verified domain referenced by an Identity Provider policy", "description": "A verified domain enforced by at least one Identity Provider policy. `health.code` is `200`; `verify` is absent; `identity_providers` is present. A DELETE on this domain will return 409 until the domain is removed from all policies.", "value": {"domain_id": "dom-456", "domain": "acme.com", "subscription_id": "sub-123", "health": {"code": "200", "summary": "Verified", "details": "The DNS TXT record has been confirmed and the domain is verified."}, "verification_record": {"type": "TXT", "host": "_acquia-challenge.acme.com", "value": "abc123def456", "health": {"code": "200", "summary": "Verified", "details": "The TXT record at _acquia-challenge.acme.com matches the expected value."}}, "verified_at": "2026-04-15T10:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-456"}, "identity_providers": {"href": "https://api.acquia.com/v3/identity-providers?filter=domain_id%3Ddom-456"}}}}}}}, "links": {"self": {"operationId": "findSsoDomainBySsoDomainId", "parameters": {"domainId": "$response.body#/domain_id"}}, "delete": {"operationId": "deleteSsoDomainBySsoDomainId", "parameters": {"domainId": "$response.body#/domain_id"}}, "verify": {"operationId": "verifySsoDomainBySsoDomainId", "parameters": {"domainId": "$response.body#/domain_id"}}}}, "Federated_Authentication_API_SsoDomainCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "properties": {"domain_id": {"type": "string", "description": "Unique identifier for the domain."}, "domain": {"type": "string", "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", "description": "The domain name (e.g., \"acme.com\")."}, "subscription_id": {"type": "string", "description": "Unique identifier for the subscription that the domain belongs to."}, "health": {"type": "object", "description": "The overall verification health of the domain. Uses the same code semantics as the platform email domain-verification system: `200` verified, `202` verification pending or in progress, `404` DNS record not found or could not be validated.", "properties": {"code": {"type": "string", "enum": ["200", "202", "404"], "description": "Machine-readable verification status code. `200` \u2014 verified. `202` \u2014 verification pending or in progress; retry after propagation. `404` \u2014 DNS TXT record not found or does not match expected value."}, "summary": {"type": "string", "description": "Short human-readable label for the verification state (e.g., \"Verified\", \"Verification pending\", \"Missing DNS record\")."}, "details": {"type": "string", "description": "Actionable explanation of the current state. For `404`, describes what was checked and what the customer should do next."}}, "required": ["code", "summary", "details"]}, "verification_record": {"type": "object", "description": "DNS TXT record the customer must publish to verify domain ownership.", "properties": {"type": {"type": "string", "const": "TXT", "description": "DNS record type."}, "host": {"type": "string", "description": "DNS record host name."}, "value": {"type": "string", "description": "Expected DNS record value."}, "health": {"type": "object", "description": "Verification health specific to this DNS record. Anchors the failure reason to the exact record the customer needs to fix, matching the per-record health pattern used in platform email domain verification.", "properties": {"code": {"type": "string", "enum": ["200", "202", "404"], "description": "`200` \u2014 record found and value matches. `202` \u2014 check in progress. `404` \u2014 record not found or value does not match."}, "summary": {"type": "string", "description": "Short human-readable label for this record's verification state."}, "details": {"type": "string", "description": "Actionable explanation; for `404`, states what was checked and what to fix."}}, "required": ["code", "summary", "details"]}}, "required": ["type", "host", "value", "health"]}, "verified_at": {"type": "string", "format": "date-time", "description": "Timestamp when the domain was successfully verified. Present only when `health.code` is `200`."}}, "required": ["domain_id", "domain", "subscription_id", "health", "verification_record"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"domain_response": {"summary": "Domain collection with pagination", "description": "Two domains in different states: one verified and in use by a policy (carries `identity_providers` link), one pending verification (carries `verify` link).", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?limit=2&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?limit=2{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?limit=2&offset=0{&filter}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?limit=2&offset=0{&sort}", "templated": true}, "next": {"href": "https://api.acquia.com/v3/subscriptions/sub-123/sso-domains?offset=2&limit=2"}}, "count": 2, "total": 3, "pagination": {"total": 3, "limit": 2, "offset": 0}, "_embedded": {"items": [{"domain_id": "dom-456", "domain": "acme.com", "subscription_id": "sub-123", "health": {"code": "200", "summary": "Verified", "details": "The DNS TXT record has been confirmed and the domain is verified."}, "verification_record": {"type": "TXT", "host": "_acquia-challenge.acme.com", "value": "abc123def456", "health": {"code": "200", "summary": "Verified", "details": "The TXT record at _acquia-challenge.acme.com matches the expected value."}}, "verified_at": "2026-04-15T10:30:00Z", "_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-456"}, "identity_providers": {"href": "https://api.acquia.com/v3/identity-providers?filter=domain_id%3Ddom-456"}}}, {"domain_id": "dom-789", "domain": "acme.corp", "subscription_id": "sub-123", "health": {"code": "202", "summary": "Verification pending", "details": "Acquia is waiting to confirm the DNS TXT record. Ensure the record has been published and allow time for DNS propagation, then retry verification."}, "verification_record": {"type": "TXT", "host": "_acquia-challenge.acme.corp", "value": "xyz789abc123", "health": {"code": "202", "summary": "Check in progress", "details": "The TXT record check has not yet completed."}}, "_links": {"self": {"href": "https://api.acquia.com/v3/sso-domains/dom-789"}, "verify": {"href": "https://api.acquia.com/v3/sso-domains/dom-789/actions/verify"}}}]}}}}}}}, "Federated_Authentication_API_ValidationError": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}, "Federated_Authentication_API_UnauthorizedError": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "Federated_Authentication_API_ForbiddenError": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "Federated_Authentication_API_NotFoundError": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "Federated_Authentication_API_InternalServerError": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}, "Federated_Authentication_API_InvalidOperationError": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "Codebase_Service_API_Codebase": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "properties": {"id": {"type": "string", "description": "Unique identifier for the codebase"}, "label": {"type": "string", "description": "Human-readable label for the codebase"}, "region": {"type": "string", "description": "AWS region of the codebase"}, "vcs_url": {"type": "string", "format": "uri", "description": "VCS repository URL"}, "repository_id": {"type": "string", "description": "VCS repository identifier"}, "created_at": {"type": "string", "format": "date-time", "description": "Creation timestamp"}, "updated_at": {"type": "string", "format": "date-time", "description": "Last update timestamp"}, "description": {"type": "string", "description": "Description of the codebase"}, "flags": {"type": "object", "properties": {"is_active": {"type": "boolean", "description": "Whether the codebase is active"}, "is_meo": {"type": "boolean", "description": "Whether the codebase is MEO"}}, "required": ["is_active", "is_meo"], "description": "Feature flags for the codebase"}, "hash": {"type": "string", "description": "Codebase hash"}, "applications_total": {"type": "integer", "description": "Total number of applications linked to this codebase"}}, "required": ["id", "label", "region", "vcs_url", "repository_id", "created_at", "updated_at", "flags", "hash", "applications_total"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", "label": "my-codebase", "region": "us-east-1", "vcs_url": "https://github.com/acquia/my-codebase.git", "repository_id": "12345678", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z", "description": "Main production codebase", "flags": {"is_active": true, "is_meo": false}, "hash": "abc123def456", "applications_total": 3, "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4"}}}}}}, "Codebase_Service_API_CodebaseCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "properties": {"id": {"type": "string", "description": "Unique identifier for the codebase"}, "label": {"type": "string", "description": "Human-readable label for the codebase"}, "region": {"type": "string", "description": "AWS region of the codebase"}, "vcs_url": {"type": "string", "format": "uri", "description": "VCS repository URL"}, "repository_id": {"type": "string", "description": "VCS repository identifier"}, "created_at": {"type": "string", "format": "date-time", "description": "Creation timestamp"}, "updated_at": {"type": "string", "format": "date-time", "description": "Last update timestamp"}, "description": {"type": "string", "description": "Description of the codebase"}, "flags": {"type": "object", "properties": {"is_active": {"type": "boolean", "description": "Whether the codebase is active"}, "is_meo": {"type": "boolean", "description": "Whether the codebase is MEO"}}, "required": ["is_active", "is_meo"], "description": "Feature flags for the codebase"}, "hash": {"type": "string", "description": "Codebase hash"}, "applications_total": {"type": "integer", "description": "Total number of applications linked to this codebase"}}, "required": ["id", "label", "region", "vcs_url", "repository_id", "created_at", "updated_at", "flags", "hash", "applications_total"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"codebase_collection": {"summary": "Codebase collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases?limit=10&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/codebases?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/codebases?limit=10{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/codebases?limit=10&offset=0{&filter}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 10, "offset": 0}, "_embedded": {"items": [{"id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", "label": "my-codebase", "region": "us-east-1", "vcs_url": "https://github.com/acquia/my-codebase.git", "repository_id": "12345678", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z", "description": "Main production codebase", "flags": {"is_active": true, "is_meo": false}, "hash": "abc123def456", "applications_total": 3, "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4"}}}]}}}}}}}, "Codebase_Service_API_CodebaseReference": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "properties": {"id": {"type": "string", "description": "Unique identifier for the reference"}, "name": {"type": "string", "description": "Name of the git reference"}, "type": {"type": "string", "enum": ["branch", "tag"], "description": "Type of the git reference"}}, "required": ["id", "name", "type"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"id": "ref-123", "name": "main", "type": "branch", "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references/main"}}}}}}, "Codebase_Service_API_CodebaseReferenceCollection": {"description": "A list of git references for the codebase", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "properties": {"id": {"type": "string", "description": "Unique identifier for the reference"}, "name": {"type": "string", "description": "Name of the git reference"}, "type": {"type": "string", "enum": ["branch", "tag"], "description": "Type of the git reference"}}, "required": ["id", "name", "type"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "example": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references?limit=10&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references?limit=10{&offset}", "templated": true}}, "count": 2, "total": 2, "pagination": {"total": 2, "limit": 10, "offset": 0}, "_embedded": {"items": [{"id": "ref-123", "name": "main", "type": "branch", "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references/main"}}}, {"id": "ref-456", "name": "v1.0.0", "type": "tag", "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4/references/v1.0.0"}}}]}}}}}, "Codebase_Service_API_DomainPattern": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"type": "object", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the domain pattern."}, "pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].[environment-name].acme.com/app). Both [site-name] and [environment-name] tokens are mandatory at codebase level. Domain rules (enforced in service layer): \u2264 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] \u2264 14 chars, [environment-name] \u2264 10 chars). One pattern per codebase.\n", "example": "[site-name].[environment-name].acme.com"}}, "required": ["id", "pattern"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "example": {"id": "22222222-2222-2222-2222-222222222222", "pattern": "[site-name].[environment-name].acme.com", "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222"}}}}}, "links": {"self": {"operationId": "findDomainPatternByCodebaseIdAndPatternId", "parameters": {"codebaseId": "$request.path.codebaseId", "patternId": "$request.path.patternId"}}}}, "Codebase_Service_API_DomainPatternCollection": {"description": "OK", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the domain pattern."}, "pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].[environment-name].acme.com/app). Both [site-name] and [environment-name] tokens are mandatory at codebase level. Domain rules (enforced in service layer): \u2264 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] \u2264 14 chars, [environment-name] \u2264 10 chars). One pattern per codebase.\n", "example": "[site-name].[environment-name].acme.com"}}, "required": ["id", "pattern"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"domain_pattern_collection": {"summary": "Domain pattern collection", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns"}, "limit": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25{&offset}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25&offset=0{&sort}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 25, "offset": 0}, "_embedded": {"items": [{"id": "22222222-2222-2222-2222-222222222222", "pattern": "[site-name].[environment-name].acme.com", "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns/22222222-2222-2222-2222-222222222222"}}}]}}}, "domain_pattern_collection_empty": {"summary": "Empty domain pattern collection", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns"}, "limit": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25{&offset}", "templated": true}, "sort": {"href": "https://api.acquia.com/v3/codebases/22222222-2222-2222-2222-222222222222/domain-patterns?limit=25&offset=0{&sort}", "templated": true}}, "count": 0, "total": 0, "pagination": {"total": 0, "limit": 25, "offset": 0}, "_embedded": {"items": []}}}}}}}, "Codebase_Service_API_ForbiddenError": {"description": "Forbidden", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "example": {"error": "forbidden", "message": "You do not have permission to perform this action."}}}}, "Codebase_Service_API_InternalServerError": {"description": "Internal Server Error", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "example": {"error": "system", "message": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}}}, "Codebase_Service_API_InvalidOperationError": {"description": "Conflict", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "example": {"error": "conflict", "message": "The requested operation is invalid or cannot be completed."}}}}, "Codebase_Service_API_NotFoundError": {"description": "Not Found", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "example": {"error": "not_found", "message": "The resource you are trying to access does not exist, or you do not have access to it."}}}}, "Codebase_Service_API_SubscriptionCodebaseCollection": {"description": "A list of codebases for the subscription", "content": {"application/hal+json": {"schema": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, {"type": "object", "properties": {"_embedded": {"type": "object", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "properties": {"id": {"type": "string", "description": "Unique identifier for the codebase"}, "label": {"type": "string", "description": "Human-readable label for the codebase"}, "region": {"type": "string", "description": "AWS region of the codebase"}, "vcs_url": {"type": "string", "format": "uri", "description": "VCS repository URL"}, "repository_id": {"type": "string", "description": "VCS repository identifier"}, "created_at": {"type": "string", "format": "date-time", "description": "Creation timestamp"}, "updated_at": {"type": "string", "format": "date-time", "description": "Last update timestamp"}, "description": {"type": "string", "description": "Description of the codebase"}, "flags": {"type": "object", "properties": {"is_active": {"type": "boolean", "description": "Whether the codebase is active"}, "is_meo": {"type": "boolean", "description": "Whether the codebase is MEO"}}, "required": ["is_active", "is_meo"], "description": "Feature flags for the codebase"}, "hash": {"type": "string", "description": "Codebase hash"}, "applications_total": {"type": "integer", "description": "Total number of applications linked to this codebase"}}, "required": ["id", "label", "region", "vcs_url", "repository_id", "created_at", "updated_at", "flags", "hash", "applications_total"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "examples": {"subscription_codebase_collection": {"summary": "Subscription codebase collection with pagination", "value": {"_links": {"self": {"href": "https://api.acquia.com/v3/subscriptions/sub-12345/codebases?limit=10&offset=0"}, "limit": {"href": "https://api.acquia.com/v3/subscriptions/sub-12345/codebases?offset=0{&limit}", "templated": true}, "offset": {"href": "https://api.acquia.com/v3/subscriptions/sub-12345/codebases?limit=10{&offset}", "templated": true}, "filter": {"href": "https://api.acquia.com/v3/subscriptions/sub-12345/codebases?limit=10&offset=0{&filter}", "templated": true}}, "count": 1, "total": 1, "pagination": {"total": 1, "limit": 10, "offset": 0}, "_embedded": {"items": [{"id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", "label": "my-codebase", "region": "us-east-1", "vcs_url": "https://github.com/acquia/my-codebase.git", "repository_id": "12345678", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z", "description": "Main production codebase", "flags": {"is_active": true, "is_meo": false}, "hash": "abc123def456", "applications_total": 3, "_links": {"self": {"href": "https://api.acquia.com/v3/codebases/a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4"}}}]}}}}}}}, "Codebase_Service_API_UnauthorizedError": {"description": "Unauthorized", "content": {"application/json": {"schema": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "example": {"error": "unauthorized", "message": "You do not have permission to access this resource."}}}}, "Codebase_Service_API_ValidationError": {"description": "Validation Error", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "example": {"error": "validation_failed", "message": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}}}}, "requestBodies": {"Failover_Service_API_CreateFailoverGroupRequest": {"description": "Create failover group request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"name": {"type": "string", "description": "The name of the failover group.", "example": "Primary Failover Group"}}, "required": ["name"], "additionalProperties": false}, "examples": {"create": {"summary": "Creates a new failover group", "description": "Creates a new failover group with the specified name", "value": {"name": "Primary Failover Group"}}}}}}, "Failover_Service_API_SaveMultiRegionFailoverRequest": {"description": "Multi-region failover enable request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"region": {"type": "string", "description": "The region to enable multi-region failover for.", "example": "us-east-1"}}, "required": ["region"], "additionalProperties": false, "minProperties": 1}, "examples": {"enable": {"summary": "Enables multi-region failover for a region", "description": "Enables multi-region failover for the specified region", "value": {"region": "us-east-1"}}}}}}, "CDN_API_ProvisionCdnForDomainRequest": {"description": "Domain CDN provisioning request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"environment_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "The environment identifier that the domain will be associated with for purging purposes."}}, "additionalProperties": false, "required": ["environment_id"], "minProperties": 1}, "example": {"environment_id": "0c3f0f5f-5727-4838-9459-2d90ee1cf7c1"}}}}, "CDN_API_CreatePurgeRequest": {"description": "Purge request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"resource_type": {"type": "string", "description": "The type of resource to purge.", "enum": ["tags", "urls", "domains", "everything"]}, "values": {"type": "array", "description": "List of values to purge based on the resource type.\nRequired when `resource_type` is not `everything`.\n", "items": {"type": "string"}, "minItems": 1}}, "additionalProperties": false, "required": ["resource_type"], "minProperties": 1}, "examples": {"purge_urls": {"summary": "Purge specific URLs", "value": {"resource_type": "urls", "values": ["https://example.com/page1", "https://example.com/page2"]}}, "purge_tags": {"summary": "Purge by cache tags", "value": {"resource_type": "tags", "values": ["product-123", "category-456"]}}, "purge_domains": {"summary": "Purge entire domains", "value": {"resource_type": "domains", "values": ["example.com", "test.example.org"]}}, "purge_everything": {"summary": "Purge everything", "value": {"resource_type": "everything"}}}}}}, "CDN_API_UpdateSecurityRuleSetRequest": {"description": "Security ruleset update request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"is_enabled": {"type": "boolean", "description": "Indicates whether the security ruleset should be enabled."}}, "additionalProperties": false, "required": ["is_enabled"], "minProperties": 1}, "examples": {"enable": {"summary": "Enables a security ruleset", "value": {"is_enabled": true}}}}}}, "CDN_API_CreateIpRuleRequest": {"description": "IP rule create request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"ips": {"type": "array", "description": "The IPs or CIDR blocks to include in the rule.", "items": {"type": "string", "description": "An IP address or CIDR block."}}, "action": {"type": "string", "enum": ["block", "allow"], "description": "The action applied when the rule matches."}, "display_name": {"type": "string", "description": "The display name of the IP rule."}, "description": {"type": "string", "description": "The description of the IP rule."}}, "additionalProperties": false, "required": ["ips", "action", "display_name"]}, "examples": {"create": {"summary": "Creates an IP rule", "value": {"ips": ["192.0.2.10", "198.51.100.0/24"], "action": "block", "display_name": "Block office IPs", "description": "Blocks office IP ranges."}}}}}}, "CDN_API_UpdateIpRuleRequest": {"description": "IP rule update request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"display_name": {"type": "string", "description": "The display name of the IP rule."}, "action": {"type": "string", "enum": ["block", "allow"], "description": "The action applied when the rule matches."}, "description": {"type": "string", "description": "The description of the IP rule."}, "ips": {"type": "array", "description": "The IPs or CIDR blocks associated with the rule.", "items": {"type": "string", "description": "An IP address or CIDR block."}}}, "additionalProperties": false, "minProperties": 1}, "examples": {"update": {"summary": "Updates an IP rule", "value": {"display_name": "Allow support", "action": "allow", "ips": ["203.0.113.5"]}}}}}}, "CDN_API_CreateCustomRuleRequest": {"description": "Custom security rule create request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"display_name": {"type": "string", "description": "The display name of the custom security rule."}, "action": {"type": "string", "enum": ["block", "allow", "alert"], "description": "The action applied when the rule matches."}, "priority": {"type": "integer", "minimum": 1, "description": "The priority order for the rule."}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "paths": {"type": "array", "description": "The paths the rule applies to.", "items": {"type": "string", "description": "A path pattern."}}}, "additionalProperties": false, "required": ["display_name", "action", "domains", "paths"], "minProperties": 1}, "examples": {"create": {"summary": "Creates a custom security rule", "value": {"display_name": "Block bad bots", "action": "block", "priority": 1, "domains": ["example.com"], "paths": ["/api/*"]}}}}}}, "CDN_API_CreateRateLimitingRuleRequest": {"description": "Rate limiting rule create request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"display_name": {"type": "string", "description": "The display name of the rate limiting rule."}, "action": {"type": "string", "enum": ["block", "alert"], "description": "The action applied when the rule matches."}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "rate_limit_per_minute": {"type": "string", "enum": ["lenient", "moderate", "strict"], "description": "The rate limit category applied to the rule."}}, "additionalProperties": false, "required": ["display_name", "action", "rate_limit_per_minute"], "minProperties": 1}, "examples": {"create": {"summary": "Creates a rate limiting rule", "value": {"display_name": "Rate Rule 1", "action": "alert", "rate_limit_per_minute": "lenient", "domains": ["example.com"]}}}}}}, "CDN_API_UpdateRateLimitingRuleRequest": {"description": "Rate limiting rule update request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"display_name": {"type": "string", "description": "The display name of the rate limiting rule."}, "action": {"type": "string", "enum": ["block", "alert"], "description": "The action applied when the rule matches."}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "rate_limit_per_minute": {"type": "string", "enum": ["lenient", "moderate", "strict"], "description": "The rate limit category applied to the rule."}}, "additionalProperties": false, "minProperties": 1}, "examples": {"update": {"summary": "Updates a rate limiting rule", "value": {"display_name": "Rate Rule 2", "action": "block", "rate_limit_per_minute": "strict", "domains": ["shop.example.com"]}}}}}}, "CDN_API_UpdateCustomRuleRequest": {"description": "Custom security rule update request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"display_name": {"type": "string", "description": "The display name of the custom security rule."}, "action": {"type": "string", "enum": ["block", "allow", "alert"], "description": "The action applied when the rule matches."}, "priority": {"type": "integer", "minimum": 1, "description": "The priority order for the rule."}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "paths": {"type": "array", "description": "The paths the rule applies to.", "items": {"type": "string", "description": "A path pattern."}}}, "additionalProperties": false, "minProperties": 1}, "examples": {"update": {"summary": "Updates a custom security rule", "value": {"display_name": "Alert login scans", "action": "alert", "priority": 2, "domains": ["shop.example.com"], "paths": ["/login"]}}}}}}, "Environment_Service_API_StartDeploymentRequest": {"description": "Deployment start request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"run_hooks": {"type": "boolean", "description": "Whether to run deployment hooks."}, "code_reference": {"type": "string", "description": "The code reference (branch or tag) to deploy."}, "hooks_argument": {"type": "string", "description": "Additional arguments passed to deployment hooks."}}, "required": ["run_hooks", "code_reference"], "additionalProperties": false, "minProperties": 1}, "examples": {"start_deployment": {"summary": "Start a deployment", "description": "Starts a deployment for the specified environment.", "value": {"run_hooks": true, "code_reference": "release-2025-01-15", "hooks_argument": "--migrate --clear-cache"}}}}}}, "Environment_Service_API_UpdateCodeDeployRequest": {"description": "Code deploy concurrency update request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"concurrency": {"type": "integer", "minimum": 1, "maximum": 100, "description": "Maximum number of concurrent code deploys allowed for the environment."}}, "required": ["concurrency"], "additionalProperties": false, "minProperties": 1}, "examples": {"update_concurrency": {"summary": "Update code deploy concurrency", "description": "Sets the maximum concurrent code deploys for the environment.", "value": {"concurrency": 10}}}}}}, "Environment_Service_API_ReorderSiteInstancesRequest": {"description": "Site instances reorder request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"site_instance_ids": {"type": "array", "description": "List of site instance IDs in the desired priority order.", "items": {"type": "string", "description": "Site instance identifier in the format {siteId}.{environmentId} (dot-separated site and environment UUIDs)."}}}, "required": ["site_instance_ids"], "additionalProperties": false, "minProperties": 1}, "examples": {"reorder": {"summary": "Reorder site instances", "description": "Provides the desired order of site instance IDs for the environment.", "value": {"site_instance_ids": ["3e8ecbec-ea7c-4260-8414-ef2938c859bc.a0c9dff7-56b6-4c0d-bad0-0e6593f66cd3", "b1d8e2f8-67c7-5d1e-cbe1-1f7604f77de4.c2e9f3a9-78d8-6e2f-dcf2-2a8715a88ef5", "d3fa04ba-89e9-4f3a-edf3-3b9826b99fa6.e4ab15cb-90fa-4a4b-fea4-4c0937c00ab7"]}}}}}}, "Environment_Service_API_UpdateEnvironmentRequest": {"description": "Update environment request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"label": {"type": "string", "minLength": 1, "maxLength": 128, "description": "Human-readable label for the environment."}, "description": {"type": "string", "minLength": 1, "maxLength": 512, "description": "Description for the environment."}, "properties": {"type": "object", "description": "PHP and server configuration properties for the environment.", "properties": {"version": {"type": "string", "description": "PHP version (e.g. \"8.3\")."}, "apcu": {"type": "integer", "description": "APCu memory limit in MB."}, "max_execution_time": {"type": "integer", "description": "PHP max execution time in seconds."}, "memory_limit": {"type": "integer", "description": "PHP memory limit in MB."}, "opcache": {"type": "integer", "description": "OPcache memory limit in MB."}, "interned_strings_buffer": {"type": "integer", "description": "OPcache interned strings buffer in MB."}, "client_max_body_size": {"type": "integer", "description": "Nginx client_max_body_size in MB."}, "upload_max_filesize": {"type": "integer", "description": "PHP upload_max_filesize in MB."}, "max_post_size": {"type": "integer", "description": "PHP post_max_size in MB."}, "max_input_vars": {"type": "integer", "description": "PHP max_input_vars."}, "memcached_limit": {"type": "integer", "description": "Memcached memory limit in MB."}, "operating_system": {"type": "string", "description": "Operating system (e.g. \"focal\")."}, "sendmail_path": {"type": "string", "description": "Sendmail path configuration."}}}}, "additionalProperties": false, "minProperties": 1}, "examples": {"update_label": {"summary": "Update environment label", "value": {"label": "Staging", "description": "Staging environment"}}, "update_properties": {"summary": "Update PHP properties", "value": {"properties": {"version": "8.3", "memory_limit": 256}}}}}}}, "Environment_Service_API_ClearCachesRequest": {"description": "Clear caches request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"domains": {"type": "array", "description": "List of domain names to clear caches for.", "minItems": 1, "items": {"type": "string", "description": "A domain name."}}}, "required": ["domains"], "additionalProperties": false}, "examples": {"clear_caches": {"summary": "Clear caches for specific domains", "value": {"domains": ["example.com", "www.example.com"]}}}}}}, "Environment_Service_API_CreateSiteInstanceRequest": {"description": "Create site instance request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"site_id": {"type": "string", "description": "The UUID of the site to associate with this environment."}, "source_environment_id": {"type": "string", "description": "The UUID of the environment to copy files and database from during creation."}, "source_site_id": {"type": "string", "description": "The UUID of the source site to copy files from during creation."}, "hook_arguments": {"type": "string", "description": "Additional arguments to pass to deployment hooks during creation."}}, "required": ["site_id"], "additionalProperties": false}, "examples": {"create": {"summary": "Associate a site with an environment", "value": {"site_id": "3e8ecbec-ea7c-4260-8414-ef2938c859bc"}}}}}}, "Environment_Service_API_CopySiteInstanceFilesRequest": {"description": "Copy site instance files request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"source_environment_id": {"type": "string", "description": "The UUID of the environment to copy files from."}}, "required": ["source_environment_id"], "additionalProperties": false}, "examples": {"copy_files": {"summary": "Copy files from another environment", "value": {"source_environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323"}}}}}}, "Environment_Service_API_CopySiteInstanceDatabaseRequest": {"description": "Copy site instance database request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"source_environment_id": {"type": "string", "description": "The UUID of the environment to copy the database from."}}, "required": ["source_environment_id"], "additionalProperties": false}, "examples": {"copy_database": {"summary": "Copy database from another environment", "value": {"source_environment_id": "d3f7270e-c45f-4801-9308-5e8afe84a323"}}}}}}, "Environment_Service_API_AssociatePrivateNetworkRequest": {"description": "Associate private network request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"private_network_id": {"type": "string", "description": "The identifier of the private network to associate with this environment."}}, "required": ["private_network_id"], "additionalProperties": false, "minProperties": 1}, "examples": {"associate": {"summary": "Associate a private network", "value": {"private_network_id": "pn-a1b2c3d4-e5f6-7890-abcd-ef1234567890"}}}}}}, "Environment_Service_API_UpdateTrustedProxiesRequest": {"description": "Update trusted proxies request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"cidrs_ipv4": {"type": "array", "description": "List of trusted IPv4 CIDR blocks.", "items": {"type": "string", "description": "An IPv4 CIDR block (e.g. \"203.0.113.0/24\")."}}, "cidrs_ipv6": {"type": "array", "description": "List of trusted IPv6 CIDR blocks.", "items": {"type": "string", "description": "An IPv6 CIDR block (e.g. \"2001:db8::/32\")."}}, "associated_cdns": {"type": "array", "description": "List of CDN names to associate with this environment.", "items": {"type": "string", "enum": ["akamai", "cloudflare", "fastly"]}}}, "additionalProperties": false, "minProperties": 1}, "examples": {"update": {"summary": "Update trusted proxy configuration", "value": {"cidrs_ipv4": ["203.0.113.0/24"], "cidrs_ipv6": [], "associated_cdns": ["cloudflare"]}}}}}}, "Environment_Service_API_CreateDomainPatternRequest": {"description": "Create domain pattern request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The domain pattern to apply to all associated sites in this environment, optionally followed by a single path segment. The [site-name] token is mandatory; [environment-name] is optional. Domain \u2264 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per environment) are enforced at the service layer.\n", "example": "[site-name].acme.com"}}, "required": ["pattern"], "additionalProperties": false}, "examples": {"create_domain_pattern": {"summary": "Create a domain pattern", "value": {"pattern": "[site-name].acme.com"}}}}}}, "Environment_Service_API_UpdateDomainPatternRequest": {"description": "Update domain pattern request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The updated domain pattern to apply to all associated sites in this environment, optionally followed by a single path segment. The [site-name] token is mandatory. Domain \u2264 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per environment) are enforced at the service layer.\n"}}, "required": ["pattern"], "additionalProperties": false, "minProperties": 1}, "examples": {"update_domain_pattern": {"summary": "Update a domain pattern", "value": {"pattern": "[site-name].staging.acme.com"}}}}}}, "SSH_Key_Service_API_SshKeyRequestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "required": ["label", "public_key"], "description": "Describes the request body for an SSH key.", "properties": {"label": {"type": "string", "description": "The SSH key label."}, "public_key": {"type": "string", "description": "The public key."}}, "additionalProperties": false, "minProperties": 1}, "example": {"label": "mykey", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQChwPHzTTDKDpSbpa2+d22LcbQmsw92eLsUK3Fmei1fiGDkd34NsYCN8m7lsi3NbvdMS83CtPQPWiCveYPzFs1/hHc4PYj8opD2CNnr5iWVVbyaulCYHCgVv4aB/ojcexg8q483A4xJeF15TiCr/gu34rK6ucTvC/tn/rCwJBudczvEwt0klqYwv8Cl/ytaQboSuem5KgSjO3lMrb6CWtfSNhE43ZOw+UBFBqxIninN868vGMkIv9VY34Pwj54rPn/ItQd6Ef4B0KHHaGmzK0vfP+AK7FxNMoHnj3iYT33KZNqtDozdn5tYyH/bThPebEtgqUn+/w5l6wZIC/8zzvls/127ngHk+jNa0PlNyS2TxhPUK4NaPHIEnnrlp07JEYC4ImcBjaYCWAdcTcUkcJjwZQkN4bGmyO9cjICH98SdLD/HxqzTHeaYDbAX/Hu9HfaBb5dXLWsjw3Xc6hoVnUUZbMQyfgb0KgxDLh92eNGxJkpZiL0VDNOWCxDWsNpzwhLNkLqCvI6lyxiLaUzvJAk6dPaRhExmCbU1lDO2eR0FdSwC1TEhJOT9eDIK1r2hztZKs2oa5FNFfB/IFHVWasVFC9N2h/r/egB5zsRxC9MqBLRBq95NBxaRSFng6ML5WZSw41Qi4C/JWVm89rdj2WqScDHYyAdwyyppWU4T5c9Fmw== example@example.com"}}}}, "Site_Service_API_DuplicateSiteRequest": {"description": "Site duplication request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"environment_mapping": {"type": "array", "items": {"type": "string", "pattern": "^[a-zA-Z0-9-]+:[a-zA-Z0-9-]+$", "description": "Environment mapping in the format 'sourceEnvId:targetEnvId'"}, "description": "Array of environment mappings. You must provide exactly one environment mapping. Each entry maps a source environment ID to a target environment ID, separated by a colon.\n", "minItems": 1, "maxItems": 1, "example": ["0ebce493-9d09-479d-a9a8-138a206fa687:a1b2c3d4-e5f6-7890-abcd-ef1234567890"]}, "site_name": {"type": "string", "description": "Machine name for the duplicated site. Must start with a lowercase letter and contain only lowercase letters and numbers. Maximum 14 characters.\n", "minLength": 1, "maxLength": 14, "pattern": "^[a-z][a-z0-9]*$", "example": "dupsite"}, "site_label": {"type": "string", "description": "Human-readable label for the duplicated site. Must only contain letters, numbers, and spaces. Maximum 50 characters.\n", "minLength": 1, "maxLength": 50, "example": "Duplicated Site"}, "site_id": {"type": "string", "format": "uuid", "description": "An optional explicit UUID for the new duplicated site. A UUID is generated automatically if omitted.", "example": "f1a2b3c4-d5e6-7890-abcd-ef1234567890"}, "hook_argument": {"type": "string", "description": "Optional hook argument to pass to the duplication process.", "example": "--verbose"}}, "required": ["environment_mapping", "site_name", "site_label"], "additionalProperties": false}, "examples": {"duplicate_basic": {"summary": "Duplicate a site with required fields", "description": "Duplicates a site with a single environment mapping", "value": {"environment_mapping": ["0ebce493-9d09-479d-a9a8-138a206fa687:a1b2c3d4-e5f6-7890-abcd-ef1234567890"], "site_name": "dupsite", "site_label": "Duplicated Site"}}, "duplicate_with_options": {"summary": "Duplicate a site with all options", "description": "Duplicates a site specifying a custom site ID and hook argument", "value": {"environment_mapping": ["0ebce493-9d09-479d-a9a8-138a206fa687:a1b2c3d4-e5f6-7890-abcd-ef1234567890"], "site_name": "duphook", "site_label": "Dup With Hook", "site_id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890", "hook_argument": "my-hook-arg"}}}}}}, "Site_Service_API_CreateSiteRequest": {"description": "Site creation request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"name": {"type": "string", "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", "minLength": 1, "maxLength": 14, "pattern": "^[a-z][a-z0-9]*$", "example": "mysite"}, "label": {"type": "string", "description": "The human-readable label for the site.", "minLength": 1, "maxLength": 50, "example": "My Site"}, "codebase_id": {"type": "string", "description": "The unique identifier of the codebase to associate with this site.", "pattern": "^[a-zA-Z0-9-]+$", "example": "a9b8c7d6-e5f4-3210-abcd-ef9876543210"}, "site_id": {"type": "string", "format": "uuid", "description": "An optional explicit UUID for the new site. A UUID is generated automatically if omitted.", "example": "0ebce493-9d09-479d-a9a8-138a206fa687"}, "description": {"type": "string", "description": "An optional description for the site.", "maxLength": 512, "example": "A production site for the marketing team."}}, "required": ["name", "label", "codebase_id"], "additionalProperties": false}, "examples": {"create_site_full": {"summary": "Create a new site with all fields", "value": {"name": "mysite", "label": "My Site", "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210", "site_id": "0ebce493-9d09-479d-a9a8-138a206fa687", "description": "This is a description of my site."}}, "create_site_minimal": {"summary": "Create a new site with required fields only", "value": {"name": "newsitename", "label": "New Site Label", "codebase_id": "a9b8c7d6-e5f4-3210-abcd-ef9876543210"}}}}}}, "Site_Service_API_UpdateSiteRequest": {"description": "Site update request body", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"label": {"type": "string", "description": "The new human-readable label for the site.", "minLength": 1, "maxLength": 50, "example": "My Updated Site"}, "description": {"type": "string", "description": "The new description for the site.", "maxLength": 512, "example": "Updated description for this site."}}, "additionalProperties": false, "minProperties": 1}, "examples": {"update_label": {"summary": "Update site label", "value": {"label": "My Updated Site"}}, "update_description": {"summary": "Update site description", "value": {"description": "Updated description for this site."}}, "update_both": {"summary": "Update label and description", "value": {"label": "My Updated Site", "description": "Updated description for this site."}}}}}}, "Federated_Authentication_API_CreateSsoDomain": {"description": "Request body for creating a new domain.", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"domain": {"type": "string", "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", "description": "The domain name to create (e.g., \"acme.com\")."}}, "required": ["domain"], "additionalProperties": false}, "example": {"domain": "acme.com"}}}}, "Federated_Authentication_API_CreateIdentityProvider": {"description": "Request body for creating a new Identity Provider.", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"idp_entity_id": {"type": "string", "format": "uri", "description": "The Identity Provider Entity ID."}, "label": {"type": "string", "description": "The name of the Identity Provider."}, "sso_url": {"type": "string", "format": "uri", "description": "The SSO URL for this IdP."}, "certificate": {"type": "string", "description": "The certificate for this IdP."}}, "required": ["label", "idp_entity_id", "sso_url", "certificate"], "additionalProperties": false}, "example": {"label": "Acme Corporation Azure AD", "idp_entity_id": "https://idp.acme.com/saml", "sso_url": "https://acme.com/sso", "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----"}}}}, "Federated_Authentication_API_UpdateIdentityProvider": {"description": "Request body for updating an existing Identity Provider.", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"label": {"type": "string", "description": "The name of the Identity Provider."}, "certificate": {"type": "string", "description": "The X.509 certificate used for SAML authentication."}, "sso_url": {"type": "string", "format": "uri", "description": "The Single Sign-On URL for the Identity Provider."}, "idp_entity_id": {"type": "string", "format": "uri", "description": "The Identity Provider Entity ID."}}, "additionalProperties": false, "minProperties": 1}, "example": {"label": "Updated Acme Corporation Azure AD", "certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----", "sso_url": "https://updatedacme.com/sso", "idp_entity_id": "https://idp2.acme.com/saml"}}}}, "Federated_Authentication_API_CreateSsoPolicy": {"description": "Request body for creating an SSO policy for an Identity Provider.", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"domain_ids": {"type": "array", "description": "List of verified domain IDs to enforce this Identity Provider for.", "items": {"type": "string", "description": "Reference to a verified SSO domain."}}}, "required": ["domain_ids"], "additionalProperties": false}, "example": {"domain_ids": ["dom-456", "dom-789"]}}}}, "Federated_Authentication_API_UpdateSsoPolicy": {"description": "Request body for updating an SSO policy for an Identity Provider.", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"domain_ids": {"type": "array", "description": "List of verified domain IDs to enforce this Identity Provider for.", "items": {"type": "string", "description": "Reference to a verified SSO domain."}}}, "required": ["domain_ids"], "additionalProperties": false, "minProperties": 1}, "example": {"domain_ids": ["dom-456"]}}}}, "Federated_Authentication_API_UpdateSsoPolicyRequest": {"description": "Request body for updating an SSO policy for an Identity Provider.", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"domain_ids": {"type": "array", "description": "List of verified domain IDs to enforce this Identity Provider for.", "items": {"type": "string", "description": "Reference to a verified SSO domain."}}}, "required": ["domain_ids"], "additionalProperties": false, "minProperties": 1}, "example": {"domain_ids": ["dom-456"]}}}}, "Federated_Authentication_API_CreateSsoPolicyRequest": {"description": "Request body for creating an SSO policy for an Identity Provider.", "required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"domain_ids": {"type": "array", "description": "List of verified domain IDs to enforce this Identity Provider for.", "items": {"type": "string", "description": "Reference to a verified SSO domain."}}}, "required": ["domain_ids"], "additionalProperties": false}, "example": {"domain_ids": ["dom-456", "dom-789"]}}}}, "Codebase_Service_API_CreateCodebaseRequest": {"description": "Codebase creation request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"codebase_id": {"type": "string", "format": "uuid", "description": "Client-supplied UUID for the new codebase"}, "label": {"type": "string", "description": "Human-readable label for the codebase"}, "region": {"type": "string", "description": "AWS region where the codebase will be created"}}, "required": ["codebase_id", "label", "region"], "additionalProperties": false}, "examples": {"create": {"summary": "Create a codebase", "description": "Creates a new codebase for a subscription", "value": {"codebase_id": "a0c9dff7-56b6-4c0d-bad0-0e6593f66cd4", "label": "my-codebase", "region": "us-east-1"}}}}}}, "Codebase_Service_API_CreateDomainPatternRequest": {"description": "Create domain pattern request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The domain pattern to apply to all associated sites in this codebase, optionally followed by a single path segment. Both [site-name] and [environment-name] tokens are mandatory. Domain \u2264 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per codebase) are enforced at the service layer.\n"}}, "required": ["pattern"], "additionalProperties": false}, "examples": {"create_domain_pattern": {"summary": "Create a domain pattern", "value": {"pattern": "[site-name].[environment-name].acme.com"}}}}}}, "Codebase_Service_API_UpdateCodebaseRequest": {"description": "Codebase update request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"label": {"type": "string", "description": "Human-readable label for the codebase"}, "description": {"type": "string", "description": "Description of the codebase"}}, "minProperties": 1, "additionalProperties": false}, "examples": {"update": {"summary": "Update a codebase", "description": "Updates an existing codebase's label and description", "value": {"label": "updated-codebase-label", "description": "Updated codebase description"}}}}}}, "Codebase_Service_API_UpdateDomainPatternRequest": {"description": "Update domain pattern request body", "content": {"application/json": {"schema": {"type": "object", "properties": {"pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The updated domain pattern to apply to all associated sites in this codebase, optionally followed by a single path segment. Both [site-name] and [environment-name] tokens are mandatory. Domain \u2264 200 chars excluding token placeholders; optional path max 255 chars matching ^/[A-Za-z0-9._-]+$. Additional semantic rules (no IPs, no forbidden suffixes, no wildcards, one pattern per codebase) are enforced at the service layer.\n"}}, "required": ["pattern"], "additionalProperties": false, "minProperties": 1}, "examples": {"update_domain_pattern": {"summary": "Update a domain pattern", "value": {"pattern": "[site-name].[environment-name].acme.com"}}}}}}}, "schemas": {"Failover_Service_API_FailoverGroup": {"type": "object", "properties": {"id": {"type": "string", "description": "Unique identifier for the failover group.", "example": "b2c3d4e5-f6a7-8901-bcde-f12345678901"}, "name": {"type": "string", "description": "The name of the failover group.", "example": "Primary Failover Group"}, "status": {"type": "string", "enum": ["creating", "normal", "failed-over", "failing-over", "error", "deleting", "deleted"], "description": "The current status of the failover group.", "example": "normal"}, "pairs": {"type": "array", "description": "The list of failover pairs belonging to this failover group.", "items": {"type": "object", "properties": {"service_name": {"type": "string", "description": "The name of the service for this failover pair.", "example": "my-application-service"}, "primary_id": {"type": "string", "description": "The ID of the primary resource in the failover pair.", "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"}, "failover_id": {"type": "string", "description": "The UUID of the failover resource in the failover pair.", "example": "f1e2d3c4-b5a6-7890-fedc-ba9876543210"}}, "required": ["service_name", "primary_id", "failover_id"]}}}, "required": ["id", "name", "status", "pairs"]}, "Failover_Service_API_FailoverPair": {"type": "object", "properties": {"service_name": {"type": "string", "description": "The name of the service for this failover pair.", "example": "my-application-service"}, "primary_id": {"type": "string", "description": "The ID of the primary resource in the failover pair.", "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"}, "failover_id": {"type": "string", "description": "The UUID of the failover resource in the failover pair.", "example": "f1e2d3c4-b5a6-7890-fedc-ba9876543210"}}, "required": ["service_name", "primary_id", "failover_id"]}, "Failover_Service_API_MultiRegionFailoverStatus": {"type": "object", "properties": {"is_enabled": {"type": "boolean", "description": "Whether multi-region failover is enabled for the environment."}, "failover_group_id": {"type": "string", "description": "The identifier of the failover group associated with the environment."}, "is_traffic_failed_over": {"type": "boolean", "description": "Whether traffic has been failed over to the secondary region."}}, "required": ["is_enabled"]}, "Failover_Service_API_HalLink": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "Failover_Service_API_HalItem": {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, "Failover_Service_API_HalCollection": {"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "Failover_Service_API_PaginatedCollection": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, "Failover_Service_API_FilteredCollection": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, "Failover_Service_API_ValidationError": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "Failover_Service_API_Error": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, "Failover_Service_API_UnauthorizedError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "Failover_Service_API_ForbiddenError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "Failover_Service_API_InternalServerError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "Failover_Service_API_Message": {"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, "Failover_Service_API_InvalidOperationError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "Failover_Service_API_NotFoundError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "API_Specs_API_Error": {"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, "API_Specs_API_InternalServerError": {"allOf": [{"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "CDN_API_Domain": {"type": "object", "description": "CDN domain resource.", "properties": {"domain": {"type": "string", "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?(\\.[a-zA-Z]{2,})+$", "description": "The fully qualified domain name."}, "subscription_uuid": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "The unique identifier of the subscription the domain belongs to."}, "environment_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "The environment identifier associated with the domain."}, "application_name": {"type": "string", "description": "The name of the application associated with the domain."}, "status": {"type": "string", "description": "The current status of the domain.", "enum": ["connecting-to-edge", "domain-validation-pending", "ready-for-dns-repointing", "configuration-failed", "configured"]}, "ownership_validation_cname": {"type": "string", "description": "The CNAME record that must be created on the domain's DNS to validate ownership."}, "bandwidth_usage_tb": {"type": "number", "format": "float", "description": "The bandwidth usage for the domain in terabytes."}, "created_at": {"type": "string", "format": "date-time", "description": "The timestamp when the domain was created."}, "updated_at": {"type": "string", "format": "date-time", "description": "The timestamp when the domain was last updated."}}, "required": ["domain", "subscription_uuid", "environment_id", "status", "application_name", "ownership_validation_cname", "bandwidth_usage_tb", "created_at", "updated_at"]}, "CDN_API_SecurityRuleSet": {"type": "object", "properties": {"id": {"type": "integer", "minimum": 1, "description": "The unique identifier of the security ruleset."}, "name": {"type": "string", "description": "The display name of the security ruleset."}, "is_enabled": {"type": "boolean", "description": "Indicates whether the security ruleset is enabled."}, "description": {"type": "string", "description": "The description of the security ruleset."}, "type": {"type": "string", "description": "The type of the security ruleset.", "enum": ["owasp", "acquia-managed"]}}, "required": ["id", "name", "is_enabled"]}, "CDN_API_IpRule": {"type": "object", "properties": {"id": {"type": "integer", "minimum": 1, "description": "The unique identifier of the IP rule."}, "display_name": {"type": "string", "description": "The display name of the IP rule."}, "action": {"type": "string", "enum": ["block", "allow"], "description": "The action applied when the rule matches."}, "description": {"type": "string", "description": "The description of the IP rule."}, "ips": {"type": "array", "description": "The IPs or CIDR blocks associated with the rule.", "items": {"type": "string", "description": "An IP address or CIDR block."}}, "created_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was created."}, "updated_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was last updated."}}, "required": ["id", "display_name", "action", "ips", "created_at", "updated_at"]}, "CDN_API_CustomRule": {"type": "object", "properties": {"id": {"type": "integer", "minimum": 1, "description": "The unique identifier of the custom security rule."}, "display_name": {"type": "string", "description": "The display name of the custom security rule."}, "action": {"type": "string", "enum": ["block", "allow", "alert"], "description": "The action applied when the rule matches."}, "priority": {"type": "integer", "minimum": 1, "description": "The priority order for the rule. Lower values are evaluated first.\nPriorities must be unique within a subscription \u2014 creating or\nupdating a rule with a priority already in use replaces the\nexisting rule at that priority.\n"}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "paths": {"type": "array", "description": "The paths the rule applies to.", "items": {"type": "string", "description": "A path pattern."}}, "mapped_domains_count": {"type": "integer", "description": "The number of domains the rule is mapped to."}, "targets": {"type": "array", "description": "Conditions that must match for the rule to fire.", "items": {"oneOf": [{"description": "Range match for IP or ASN ranges.", "type": "object", "required": ["attribute", "criteria", "value"], "additionalProperties": false, "properties": {"attribute": {"type": "string", "description": "The request attribute the rule inspects.", "enum": ["source-ip", "asn"]}, "criteria": {"type": "string", "description": "How `value` is compared against `attribute`.", "enum": ["range"]}, "value": {"type": "object", "description": "Range bounds for IP or ASN ranges.", "additionalProperties": false, "required": ["from", "to"], "properties": {"from": {"type": "string", "description": "The start of the range."}, "to": {"type": "string", "description": "The end of the range."}}}}}, {"description": "Value-list match for non-header, non-query attributes.", "type": "object", "required": ["attribute", "criteria", "value"], "additionalProperties": false, "properties": {"attribute": {"type": "string", "description": "The request attribute the rule inspects.", "enum": ["source-ip", "country", "method", "path", "asn"]}, "criteria": {"type": "string", "description": "How `value` is compared against `attribute`.", "enum": ["equals", "contains", "regex"]}, "value": {"type": "object", "description": "A list of candidate values combined with OR.", "additionalProperties": false, "required": ["values"], "properties": {"values": {"type": "array", "description": "The list of values.", "items": {"type": "string", "description": "A value."}}}}}}, {"description": "Key-value match for header or query-string attributes.", "type": "object", "required": ["attribute", "criteria", "value"], "additionalProperties": false, "properties": {"attribute": {"type": "string", "description": "The request attribute the rule inspects.", "enum": ["header", "query-string"]}, "criteria": {"type": "string", "description": "How `value` is compared against `attribute`.", "enum": ["equals", "contains", "regex"]}, "value": {"type": "object", "description": "Key-value matchers for header or query-string attributes.", "additionalProperties": false, "required": ["key_value_pairs"], "properties": {"key_value_pairs": {"type": "array", "description": "The list of key-value pairs.", "items": {"type": "object", "description": "A key-value pair.", "required": ["key", "value"], "properties": {"key": {"type": "string", "description": "The header or query-parameter name."}, "value": {"type": "string", "description": "The expected value."}}}}}}}}]}}, "created_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was created."}, "updated_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was last updated."}}, "required": ["id", "display_name", "action", "priority", "domains", "paths", "created_at", "updated_at", "targets"]}, "CDN_API_RateLimitingRule": {"type": "object", "properties": {"id": {"type": "integer", "minimum": 1, "description": "The unique identifier of the rate limiting rule."}, "display_name": {"type": "string", "description": "The display name of the rate limiting rule."}, "action": {"type": "string", "enum": ["block", "alert"], "description": "The action applied when the rule matches."}, "rate_limit_per_minute": {"type": "string", "enum": ["lenient", "moderate", "strict"], "description": "The rate limit category applied to the rule."}, "domains": {"type": "array", "description": "The domains the rule applies to.", "items": {"type": "string", "description": "A domain name."}}, "created_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was created."}, "updated_at": {"type": "string", "format": "date-time", "description": "The timestamp when the rule was last updated."}}, "required": ["id", "display_name", "action", "rate_limit_per_minute", "domains", "created_at", "updated_at"]}, "CDN_API_HalLink": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "CDN_API_HalItem": {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, "CDN_API_HalCollection": {"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "CDN_API_PaginatedCollection": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, "CDN_API_FilteredCollection": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, "CDN_API_SortedCollection": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, "CDN_API_ValidationError": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "CDN_API_Error": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, "CDN_API_UnauthorizedError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "CDN_API_ForbiddenError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "CDN_API_NotFoundError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "CDN_API_InternalServerError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "CDN_API_Message": {"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, "CDN_API_InvalidOperationError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "Environment_Service_API_SiteInstance": {"type": "object", "description": "Site Instance properties", "properties": {"site_id": {"type": "string", "description": "The unique identifier of the site", "pattern": "^[a-zA-Z0-9-]+$"}, "environment_id": {"type": "string", "description": "The unique identifier of the environment", "pattern": "^[a-zA-Z0-9-]+$"}, "status": {"type": "string", "description": "The current status of the site instance", "enum": ["active", "creating", "create-failed", "updating", "update-failed", "deleting", "deleted", "delete-failed"]}, "health_status": {"type": "object", "description": "Health status information for the site instance", "properties": {"code": {"type": "string", "description": "Health status code"}, "summary": {"type": "string", "description": "Summary of the health status"}, "details": {"type": "string", "description": "Detailed health status information"}}, "required": ["code", "summary", "details"]}, "domains": {"type": "array", "description": "List of domains associated with the site instance", "items": {"type": "string"}}, "deployment_order": {"type": ["integer", "null"], "description": "The order in which this site instance is deployed relative to others.", "example": 1}, "delete_at": {"type": ["string", "null"], "format": "date-time", "description": "The scheduled deletion date-time for this site instance, if set."}, "date_marked_for_deletion": {"type": ["string", "null"], "format": "date-time", "description": "The date-time when this site instance was marked for deletion."}, "protection_mode": {"type": ["object", "null"], "description": "The current protection mode of the site instance", "properties": {"is_enabled": {"type": "boolean", "description": "Indicates whether the protection mode is enabled for the site instance"}, "is_inherited": {"type": "boolean", "description": "Indicates whether the protection mode is inherited from the environment"}}, "required": ["is_enabled", "is_inherited"]}}, "required": ["site_id", "environment_id", "status", "health_status", "domains"]}, "Environment_Service_API_Environment": {"type": "object", "description": "Environment properties", "properties": {"id": {"type": "string", "description": "The unique identifier of the environment", "pattern": "^[a-zA-Z0-9-]+$"}, "name": {"type": "string", "description": "The machine name of the environment"}, "label": {"type": "string", "description": "The human-readable label of the environment"}, "description": {"type": "string", "description": "A description of the environment"}, "status": {"type": "string", "description": "The current status of the environment", "enum": ["normal", "allocated", "launching", "killed", "cancelled", "stopped"]}, "flags": {"type": "object", "description": "Environment configuration flags", "additionalProperties": {"type": "boolean"}}, "properties": {"type": "object", "description": "Environment PHP and server properties", "properties": {"version": {"type": "string", "description": "PHP version"}, "max_execution_time": {"type": "integer", "description": "Maximum execution time in seconds"}, "memory_limit": {"type": "integer", "description": "Memory limit in MB"}, "apcu": {"type": "integer", "description": "APCu cache size in MB"}, "client_max_body_size": {"type": "integer", "description": "Maximum client body size in MB"}, "max_input_vars": {"type": "integer", "description": "Maximum number of input variables"}, "max_post_size": {"type": "integer", "description": "Maximum POST size in MB"}, "memcached_limit": {"type": "integer", "description": "Memcached limit in MB"}, "upload_max_filesize": {"type": "integer", "description": "Maximum upload file size in MB"}, "operating_system": {"type": "string", "description": "Operating system codename"}}}, "reference": {"type": "string", "description": "The code reference (branch, tag, or commit) deployed to this environment"}, "code_switch_status": {"type": "string", "description": "The status of the Switch Code action", "enum": ["IDLE", "IN_PROGRESS"]}, "ssh_url": {"type": "string", "format": "uri", "description": "The SSH connection string for accessing this environment"}}, "required": ["id", "name", "label", "status", "flags", "properties", "reference", "code_switch_status", "ssh_url"]}, "Environment_Service_API_EmbeddedCodebase": {"type": "object", "description": "Embedded codebase resource", "properties": {"id": {"type": "string", "description": "The unique identifier of the codebase"}}, "required": ["id"]}, "Environment_Service_API_Deployment": {"type": "object", "description": "Deployment properties", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the deployment."}, "environment_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Identifier of the environment this deployment belongs to."}, "status": {"type": "string", "description": "Current status of the deployment.", "enum": ["waiting", "received", "started", "done", "failed", "error", "killed"]}, "code_reference": {"type": "string", "description": "The code reference (e.g. branch or tag) deployed."}, "run_hooks": {"type": "boolean", "description": "Whether deployment hooks were run."}, "hooks_argument": {"type": ["string", "null"], "description": "Additional arguments passed to deployment hooks."}, "created_at": {"type": "string", "format": "date-time", "description": "Timestamp when the deployment was created."}, "started_at": {"type": ["string", "null"], "format": "date-time", "description": "Timestamp when the deployment started."}, "completed_at": {"type": ["string", "null"], "format": "date-time", "description": "Timestamp when the deployment completed."}, "sender_id": {"type": ["string", "null"], "description": "Identifier of the user or system that initiated the deployment."}, "logs": {"type": ["string", "null"], "description": "Deployment log output."}}, "required": ["id", "environment_id", "status", "code_reference", "run_hooks", "created_at"]}, "Environment_Service_API_CodeDeploy": {"type": "object", "properties": {"concurrency": {"type": "integer", "minimum": 1, "maximum": 100, "description": "Maximum number of concurrent code deploys allowed for the environment."}}, "required": ["concurrency"]}, "Environment_Service_API_Domain": {"type": "object", "description": "Domain properties", "properties": {"name": {"type": "string", "description": "The domain name."}, "is_managed": {"type": "boolean", "description": "Whether the domain is managed by Acquia."}}, "required": ["name", "is_managed"]}, "Environment_Service_API_DomainStatus": {"type": "object", "description": "Domain DNS status properties", "properties": {"hostname": {"type": "string", "description": "The domain name."}, "site_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Identifier of the site this domain belongs to."}, "environment_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Identifier of the environment this domain belongs to."}, "ip_addresses": {"type": "array", "description": "List of IP addresses resolving for this domain.", "items": {"type": "string"}}, "cnames": {"type": "array", "description": "List of CNAME records resolving for this domain.", "items": {"type": "string"}}, "flags": {"type": "object", "description": "Status flags for the domain.", "properties": {"default": {"type": "boolean", "description": "Whether this is the default domain."}, "active": {"type": "boolean", "description": "Whether the domain is active."}, "dns_resolves": {"type": "boolean", "description": "Whether the domain DNS resolves correctly."}, "acquia_hosted": {"type": "boolean", "description": "Whether the domain is hosted on Acquia infrastructure."}}, "required": ["default", "active", "dns_resolves", "acquia_hosted"]}}, "required": ["hostname", "site_id", "environment_id", "ip_addresses", "cnames", "flags"]}, "Environment_Service_API_Database": {"type": "object", "description": "Database properties", "properties": {"database_name": {"type": "string", "description": "The name of the database."}, "database_role": {"type": "string", "description": "The role of the database (e.g. the site username)."}}, "required": ["database_name", "database_role"]}, "Environment_Service_API_DatabaseConnection": {"type": "object", "description": "Database connection credential properties", "properties": {"db_host": {"type": "string", "description": "The database host."}, "name": {"type": "string", "description": "The database name."}, "password": {"type": "string", "description": "The database password."}, "user_name": {"type": "string", "description": "The database username."}, "ssh_host": {"type": "string", "description": "The SSH host for tunneling to the database."}}, "required": ["db_host", "name", "password", "user_name", "ssh_host"]}, "Environment_Service_API_DatabaseBackup": {"type": "object", "description": "Database backup properties", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the database backup."}, "database_id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Identifier of the database this backup belongs to."}, "created_at": {"type": "string", "format": "date-time", "description": "Timestamp when the backup was created."}, "type": {"type": "string", "enum": ["DAILY", "ON_DEMAND"], "description": "The type of backup."}}, "required": ["id", "database_id", "created_at", "type"]}, "Environment_Service_API_EgressIp": {"type": "object", "description": "Egress IP properties", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the egress IP."}, "status": {"type": "string", "description": "Current status of the egress IP."}, "ipv4": {"type": "string", "description": "The IPv4 address."}, "ipv6": {"type": ["string", "null"], "description": "The IPv6 address, if assigned."}, "flags": {"type": "object", "description": "Status flags for the egress IP.", "additionalProperties": {"type": "boolean"}}}, "required": ["id", "status", "ipv4", "flags"]}, "Environment_Service_API_TrustedProxies": {"type": "object", "description": "Trusted proxy configuration properties", "properties": {"cidrs_ipv4": {"type": "array", "description": "List of trusted IPv4 CIDR blocks.", "items": {"type": "string"}}, "cidrs_ipv6": {"type": "array", "description": "List of trusted IPv6 CIDR blocks.", "items": {"type": "string"}}, "associated_cdns": {"type": "object", "description": "Map of CDN configurations associated with this environment, keyed by CDN name.", "additionalProperties": {"type": "object", "properties": {"label": {"type": "string", "description": "Display label for the CDN."}, "is_enabled": {"type": "boolean", "description": "Whether the CDN is enabled."}}, "required": ["label", "is_enabled"]}}}, "required": ["cidrs_ipv4", "cidrs_ipv6", "associated_cdns"]}, "Environment_Service_API_PrivateNetwork": {"type": "object", "description": "Private network reference properties", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the private network."}, "label": {"type": ["string", "null"], "description": "Human-readable label for the private network."}}, "required": ["id"]}, "Environment_Service_API_DomainPattern": {"type": "object", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the domain pattern."}, "pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].acme.com/app). The [site-name] token is mandatory; [environment-name] is optional at environment level. Domain rules (enforced in service layer): \u2264 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] \u2264 14 chars). One pattern per environment.\n", "example": "[site-name].acme.com"}}, "required": ["id", "pattern"]}, "Environment_Service_API_HalLink": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "Environment_Service_API_HalItem": {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, "Environment_Service_API_HalCollection": {"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "Environment_Service_API_PaginatedCollection": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, "Environment_Service_API_FilteredCollection": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, "Environment_Service_API_ValidationError": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "Environment_Service_API_Error": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, "Environment_Service_API_UnauthorizedError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "Environment_Service_API_ForbiddenError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "Environment_Service_API_NotFoundError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "Environment_Service_API_InternalServerError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "Environment_Service_API_Message": {"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, "Environment_Service_API_InvalidOperationError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "Environment_Service_API_SortedCollection": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, "SSH_Key_Service_API_HalLink": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}, "SSH_Key_Service_API_HalItem": {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, "SSH_Key_Service_API_HalCollection": {"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "SSH_Key_Service_API_PaginatedCollection": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}, {"properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}, {"properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}]}, "SSH_Key_Service_API_FilteredCollection": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}, {"properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering."}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}}}]}, "SSH_Key_Service_API_SortedCollection": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}, {"properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting."}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}}}]}, "SSH_Key_Service_API_SshKey": {"allOf": [{"type": "object", "required": ["id", "label", "public_key", "fingerprint", "created_at", "user_id"], "description": "Details an SSH key.", "properties": {"id": {"type": "string", "description": "The unique identifier of the SSH key.", "pattern": "^[a-zA-Z0-9-]+$"}, "label": {"type": "string", "description": "The human-readable key label."}, "public_key": {"type": "string", "description": "The public key.", "minLength": 64}, "fingerprint": {"type": "string", "description": "The public key fingerprint.", "pattern": "^[A-Za-z0-9:+/=.-]+$"}, "created_at": {"type": "string", "format": "date-time", "description": "The key creation date."}, "user_id": {"type": "string", "description": "The unique identifier of the user who owns this SSH key.", "pattern": "^[a-zA-Z0-9-]+$"}}}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "SSH_Key_Service_API_SshKeys": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}, {"properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}, {"properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}, {"properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering."}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}}}]}, {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}, {"properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting."}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}}}]}, {"type": "object", "description": "A collection of SSH keys.", "properties": {"_embedded": {"type": "object", "description": "A collection of SSH keys matching the request parameters.", "properties": {"items": {"type": "array", "items": {"allOf": [{"type": "object", "required": ["id", "label", "public_key", "fingerprint", "created_at", "user_id"], "description": "Details an SSH key.", "properties": {"id": {"type": "string", "description": "The unique identifier of the SSH key.", "pattern": "^[a-zA-Z0-9-]+$"}, "label": {"type": "string", "description": "The human-readable key label."}, "public_key": {"type": "string", "description": "The public key.", "minLength": 64}, "fingerprint": {"type": "string", "description": "The public key fingerprint.", "pattern": "^[A-Za-z0-9:+/=.-]+$"}, "created_at": {"type": "string", "format": "date-time", "description": "The key creation date."}, "user_id": {"type": "string", "description": "The unique identifier of the user who owns this SSH key.", "pattern": "^[a-zA-Z0-9-]+$"}}}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "SSH_Key_Service_API_Message": {"allOf": [{"type": "object", "required": ["message"], "properties": {"message": {"type": "string", "description": "The human-friendly confirmation of the operation."}}}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}, "SSH_Key_Service_API_ValidationError": {"type": "object", "required": ["error", "message"], "description": "A validation error.", "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "object", "description": "The validation error message keyed by its field or group name.", "additionalProperties": {"type": "string"}}}}, "SSH_Key_Service_API_Error": {"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, "SSH_Key_Service_API_UnauthorizedError": {"allOf": [{"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "SSH_Key_Service_API_ForbiddenError": {"allOf": [{"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "SSH_Key_Service_API_NotFoundError": {"allOf": [{"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "SSH_Key_Service_API_InvalidOperationError": {"allOf": [{"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "SSH_Key_Service_API_InternalServerError": {"allOf": [{"type": "object", "required": ["error", "message"], "properties": {"error": {"type": "string", "description": "The error summary."}, "message": {"type": "string", "description": "The long description for the returned error."}}}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "Site_Service_API_Site": {"type": "object", "description": "A Site resource", "properties": {"id": {"type": "string", "description": "The unique identifier of the site", "pattern": "^[a-zA-Z0-9-]+$", "example": "12345678-1234-1234-1234-123456789012"}, "name": {"type": "string", "description": "The machine name of the site. Must start with a lowercase letter and contain only lowercase letters and numbers.", "minLength": 1, "maxLength": 14, "pattern": "^[a-z][a-z0-9]*$", "example": "mysite"}, "label": {"type": "string", "description": "The human-readable label of the site", "minLength": 1, "maxLength": 50, "example": "My Site 1"}, "description": {"type": "string", "description": "A description of the site", "maxLength": 512, "example": "A production site for the marketing team."}, "codebase_id": {"type": "string", "description": "The unique identifier of the codebase this site belongs to", "pattern": "^[a-zA-Z0-9-]+$", "example": "550e8400-e29b-41d4-a716-446655441210"}, "status": {"type": "string", "description": "The current lifecycle status of the site. ready indicates the site is active and operational. marked-for-deletion indicates the site has been scheduled for deletion and can still be recovered.\n", "enum": ["ready", "marked-for-deletion"], "example": "ready"}, "delete_at": {"type": "string", "format": "date-time", "description": "ISO 8601 datetime indicating when the site is scheduled for deletion. Only present when status is marked-for-deletion.", "example": "2025-06-15T00:00:00Z"}}, "required": ["id", "name", "label", "codebase_id", "status"]}, "Site_Service_API_HalLink": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "Site_Service_API_HalItem": {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, "Site_Service_API_HalCollection": {"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "Site_Service_API_PaginatedCollection": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, "Site_Service_API_FilteredCollection": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, "Site_Service_API_SortedCollection": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, "Site_Service_API_ValidationError": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "Site_Service_API_Error": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, "Site_Service_API_UnauthorizedError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "Site_Service_API_ForbiddenError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "Site_Service_API_InternalServerError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "Site_Service_API_Message": {"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, "Site_Service_API_NotFoundError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "Site_Service_API_InvalidOperationError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "Federated_Authentication_API_IdentityProvider": {"type": "object", "properties": {"identity_provider_id": {"type": "string", "description": "Unique identifier for the identity provider."}, "label": {"type": "string", "description": "The name of the Identity Provider."}, "subscription_id": {"type": "string", "description": "Unique identifier for the subscription that the Identity Provider belongs to."}, "idp_entity_id": {"type": "string", "format": "uri", "description": "The Identity Provider Entity ID."}, "sp_entity_id": {"type": "string", "format": "uri", "description": "The Service Provider Entity ID."}, "sso_url": {"type": "string", "format": "uri", "description": "The Single Sign-On URL for the Identity Provider."}, "certificate": {"type": "string", "description": "The X.509 certificate used for SAML authentication."}, "created_at": {"type": "string", "format": "date-time", "description": "Timestamp when the Identity Provider was created."}}, "required": ["identity_provider_id", "label", "subscription_id", "idp_entity_id", "sp_entity_id", "sso_url", "certificate", "created_at"]}, "Federated_Authentication_API_SsoDomain": {"type": "object", "properties": {"domain_id": {"type": "string", "description": "Unique identifier for the domain."}, "domain": {"type": "string", "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", "description": "The domain name (e.g., \"acme.com\")."}, "subscription_id": {"type": "string", "description": "Unique identifier for the subscription that the domain belongs to."}, "health": {"type": "object", "description": "The overall verification health of the domain. Uses the same code semantics as the platform email domain-verification system: `200` verified, `202` verification pending or in progress, `404` DNS record not found or could not be validated.", "properties": {"code": {"type": "string", "enum": ["200", "202", "404"], "description": "Machine-readable verification status code. `200` \u2014 verified. `202` \u2014 verification pending or in progress; retry after propagation. `404` \u2014 DNS TXT record not found or does not match expected value."}, "summary": {"type": "string", "description": "Short human-readable label for the verification state (e.g., \"Verified\", \"Verification pending\", \"Missing DNS record\")."}, "details": {"type": "string", "description": "Actionable explanation of the current state. For `404`, describes what was checked and what the customer should do next."}}, "required": ["code", "summary", "details"]}, "verification_record": {"type": "object", "description": "DNS TXT record the customer must publish to verify domain ownership.", "properties": {"type": {"type": "string", "const": "TXT", "description": "DNS record type."}, "host": {"type": "string", "description": "DNS record host name."}, "value": {"type": "string", "description": "Expected DNS record value."}, "health": {"type": "object", "description": "Verification health specific to this DNS record. Anchors the failure reason to the exact record the customer needs to fix, matching the per-record health pattern used in platform email domain verification.", "properties": {"code": {"type": "string", "enum": ["200", "202", "404"], "description": "`200` \u2014 record found and value matches. `202` \u2014 check in progress. `404` \u2014 record not found or value does not match."}, "summary": {"type": "string", "description": "Short human-readable label for this record's verification state."}, "details": {"type": "string", "description": "Actionable explanation; for `404`, states what was checked and what to fix."}}, "required": ["code", "summary", "details"]}}, "required": ["type", "host", "value", "health"]}, "verified_at": {"type": "string", "format": "date-time", "description": "Timestamp when the domain was successfully verified. Present only when `health.code` is `200`."}}, "required": ["domain_id", "domain", "subscription_id", "health", "verification_record"]}, "Federated_Authentication_API_SsoPolicy": {"type": "object", "description": "SSO policy that enforces an Identity Provider for specific domains.", "properties": {"status": {"type": "string", "enum": ["enabled", "disabled"], "default": "disabled", "description": "The status of the SSO policy. When enabled, the policy enforces SSO for the specified domains. Defaults to disabled on creation."}, "_embedded": {"type": "object", "description": "Embedded resources for the SSO policy.", "properties": {"domains": {"type": "array", "description": "The SSO domains enforced by this policy, each with a self link back to the authoritative SsoDomain resource.", "items": {"allOf": [{"type": "object", "properties": {"domain_id": {"type": "string", "description": "Unique identifier for the domain."}, "domain": {"type": "string", "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]{2,})+$", "description": "The domain name (e.g., \"acme.com\")."}, "subscription_id": {"type": "string", "description": "Unique identifier for the subscription that the domain belongs to."}, "health": {"type": "object", "description": "The overall verification health of the domain. Uses the same code semantics as the platform email domain-verification system: `200` verified, `202` verification pending or in progress, `404` DNS record not found or could not be validated.", "properties": {"code": {"type": "string", "enum": ["200", "202", "404"], "description": "Machine-readable verification status code. `200` \u2014 verified. `202` \u2014 verification pending or in progress; retry after propagation. `404` \u2014 DNS TXT record not found or does not match expected value."}, "summary": {"type": "string", "description": "Short human-readable label for the verification state (e.g., \"Verified\", \"Verification pending\", \"Missing DNS record\")."}, "details": {"type": "string", "description": "Actionable explanation of the current state. For `404`, describes what was checked and what the customer should do next."}}, "required": ["code", "summary", "details"]}, "verification_record": {"type": "object", "description": "DNS TXT record the customer must publish to verify domain ownership.", "properties": {"type": {"type": "string", "const": "TXT", "description": "DNS record type."}, "host": {"type": "string", "description": "DNS record host name."}, "value": {"type": "string", "description": "Expected DNS record value."}, "health": {"type": "object", "description": "Verification health specific to this DNS record. Anchors the failure reason to the exact record the customer needs to fix, matching the per-record health pattern used in platform email domain verification.", "properties": {"code": {"type": "string", "enum": ["200", "202", "404"], "description": "`200` \u2014 record found and value matches. `202` \u2014 check in progress. `404` \u2014 record not found or value does not match."}, "summary": {"type": "string", "description": "Short human-readable label for this record's verification state."}, "details": {"type": "string", "description": "Actionable explanation; for `404`, states what was checked and what to fix."}}, "required": ["code", "summary", "details"]}}, "required": ["type", "host", "value", "health"]}, "verified_at": {"type": "string", "format": "date-time", "description": "Timestamp when the domain was successfully verified. Present only when `health.code` is `200`."}}, "required": ["domain_id", "domain", "subscription_id", "health", "verification_record"]}, {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}]}}}, "required": ["domains"]}}, "required": ["status", "_embedded"]}, "Federated_Authentication_API_HalLink": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "Federated_Authentication_API_HalItem": {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, "Federated_Authentication_API_HalCollection": {"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "Federated_Authentication_API_PaginatedCollection": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, "Federated_Authentication_API_FilteredCollection": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, "Federated_Authentication_API_SortedCollection": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}, "Federated_Authentication_API_ValidationError": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "Federated_Authentication_API_Error": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, "Federated_Authentication_API_UnauthorizedError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "Federated_Authentication_API_ForbiddenError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "Federated_Authentication_API_NotFoundError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "Federated_Authentication_API_InternalServerError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "Federated_Authentication_API_Message": {"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, "Federated_Authentication_API_InvalidOperationError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "Codebase_Service_API_Codebase": {"type": "object", "properties": {"id": {"type": "string", "description": "Unique identifier for the codebase"}, "label": {"type": "string", "description": "Human-readable label for the codebase"}, "region": {"type": "string", "description": "AWS region of the codebase"}, "vcs_url": {"type": "string", "format": "uri", "description": "VCS repository URL"}, "repository_id": {"type": "string", "description": "VCS repository identifier"}, "created_at": {"type": "string", "format": "date-time", "description": "Creation timestamp"}, "updated_at": {"type": "string", "format": "date-time", "description": "Last update timestamp"}, "description": {"type": "string", "description": "Description of the codebase"}, "flags": {"type": "object", "properties": {"is_active": {"type": "boolean", "description": "Whether the codebase is active"}, "is_meo": {"type": "boolean", "description": "Whether the codebase is MEO"}}, "required": ["is_active", "is_meo"], "description": "Feature flags for the codebase"}, "hash": {"type": "string", "description": "Codebase hash"}, "applications_total": {"type": "integer", "description": "Total number of applications linked to this codebase"}}, "required": ["id", "label", "region", "vcs_url", "repository_id", "created_at", "updated_at", "flags", "hash", "applications_total"]}, "Codebase_Service_API_CodebaseReference": {"type": "object", "properties": {"id": {"type": "string", "description": "Unique identifier for the reference"}, "name": {"type": "string", "description": "Name of the git reference"}, "type": {"type": "string", "enum": ["branch", "tag"], "description": "Type of the git reference"}}, "required": ["id", "name", "type"]}, "Codebase_Service_API_DomainPattern": {"type": "object", "properties": {"id": {"type": "string", "pattern": "^[a-zA-Z0-9-]+$", "description": "Unique identifier for the domain pattern."}, "pattern": {"type": "string", "maxLength": 455, "pattern": "^(?=.*\\[site-name\\])(?=.*\\[environment-name\\])[\\[\\]a-zA-Z0-9.-]+(/[A-Za-z0-9._-]+)?$", "description": "The domain pattern string, optionally followed by a single path segment (e.g. [site-name].[environment-name].acme.com/app). Both [site-name] and [environment-name] tokens are mandatory at codebase level. Domain rules (enforced in service layer): \u2264 200 chars excluding token placeholders, at least 2 components (must contain .), no IP addresses, no forbidden suffixes (acquia-sites.com, hosting.acquia.com), no wildcards, no leading/trailing dot or hyphen, no consecutive dots, no query string or fragment. Path rules: optional, max 255 chars, must match ^/[A-Za-z0-9._-]+$, max 1 segment. DNS label limit: 63 chars after token substitution ([site-name] \u2264 14 chars, [environment-name] \u2264 10 chars). One pattern per codebase.\n", "example": "[site-name].[environment-name].acme.com"}}, "required": ["id", "pattern"]}, "Codebase_Service_API_HalLink": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "Codebase_Service_API_HalItem": {"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, "Codebase_Service_API_HalCollection": {"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, "Codebase_Service_API_PaginatedCollection": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"prev": {"description": "Link to the previous page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "next": {"description": "Link to the next page (templated)", "type": "object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, "offset": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for offset"}, "limit": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for limit"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "count": {"type": "integer", "description": "The number of items in the current page"}, "total": {"type": "integer", "description": "The total number of items available"}, "pagination": {"type": "object", "properties": {"total": {"type": "integer", "description": "The total number of items available"}, "limit": {"type": "integer", "description": "The maximum number of items to retrieve in a single page"}, "offset": {"type": "integer", "description": "The starting position of the items to retrieve"}}, "required": ["total", "limit", "offset"]}}, "required": ["count", "total", "pagination"]}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 2}, "_embedded": {"items": [{"id": "456e4567-e89b-11d3-a789-426614174000", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/456e4567-e89b-11d3-a789-426614174000"}}}, {"id": "789e4567-e89b-11d3-a789-426614174000", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/789e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=0&limit=2"}, "next": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 0}, "_embedded": {"items": [{"id": "111e4567-e89b-11d3-a789-426614174000", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/111e4567-e89b-11d3-a789-426614174000"}}}, {"id": "222e4567-e89b-11d3-a789-426614174000", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/222e4567-e89b-11d3-a789-426614174000"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?offset=4&limit=2"}, "prev": {"href": "https://api.acquia.com/v3/resources?offset=2&limit=2"}, "offset": {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}, "limit": {"href": "https://api.acquia.com/v3/resources{?limit}", "templated": true}}, "count": 2, "total": 6, "pagination": {"total": 6, "limit": 2, "offset": 4}, "_embedded": {"items": [{"id": "999e4567-e89b-11d3-a789-426614174000", "name": "Resource 5", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/999e4567-e89b-11d3-a789-426614174000"}}}, {"id": "aaaee567-e89b-11d3-a789-426614174000", "name": "Resource 6", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/aaaee567-e89b-11d3-a789-426614174000"}}}]}}]}, "Codebase_Service_API_FilteredCollection": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"filter": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for filtering. The `filter` query parameter is a string to signify the fields to filter the result set by. If the filter includes logical filters this string will be delimited by a \",\" for a logical OR filter, or a \";\" for logical AND filters. Note: Only one type logical filter will be accepted. If the filter contains both OR and AND filters it will be rejected. (e.g. filter=field=value*;field2=value2* indicates that the result set will be filtered by \"field\" using the term \"value*\" AND \"field2\" using the term \"value2*\". Note that * is a wildcard character in this context). Allowed filter operators are: Equals: = (%3D), Does not equal: != (!%3D), Greater than: > (%3E), Less than: < (%3C), Greater than or equal to: >= (%3E%3D), Less than or equal to: <= (%3C%3D), Contains substring: =@ (%3D@), Does not contain substring: !@ (!@)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=field=value*;field2=value2*"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}, {"_links": {"self": {"href": "https://api.acquia.com/v3/resources?filter=created_at%3E%3D2025-05-20T00%3A00%3A00Z,created_at%3C2025-05-21T00%3A00%3A00Z"}, "filter": {"href": "https://api.acquia.com/v3/resources{?filter}", "templated": true}}, "_embedded": {"items": [{"id": "3", "name": "Resource 3", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/3"}}}, {"id": "4", "name": "Resource 4", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/4"}}}]}}]}, "Codebase_Service_API_ValidationError": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"field_name": "This field is required.", "another_field": "This field must be a valid format."}}}, "required": ["error", "message"]}, "Codebase_Service_API_Error": {"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, "Codebase_Service_API_UnauthorizedError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "unauthorized"}, "message": {"type": "string", "const": "You do not have permission to access this resource."}}, "required": ["error", "message"]}]}, "Codebase_Service_API_ForbiddenError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "forbidden"}, "message": {"type": "string", "example": "You do not have permission to perform this action."}}, "required": ["error", "message"]}]}, "Codebase_Service_API_InternalServerError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "system"}, "message": {"type": "string", "pattern": "^An unknown error occurred\\. Please try your request again\\. If the problem persists, contact Acquia Support\\. Request ID: .+\\.$", "description": "Standard error message with variable request ID.", "example": "An unknown error occurred. Please try your request again. If the problem persists, contact Acquia Support. Request ID: abc123-def456-ghi789."}}, "required": ["error", "message"]}]}, "Codebase_Service_API_NotFoundError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "not_found"}, "message": {"type": "string", "example": "The resource you are trying to access does not exist, or you do not have access to it."}}, "required": ["error", "message"]}]}, "Codebase_Service_API_Message": {"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"message": {"type": "string", "description": "The message content"}}, "required": ["message"]}]}, "Codebase_Service_API_InvalidOperationError": {"allOf": [{"type": "object", "properties": {"error": {"type": "string"}, "message": {"type": "string"}}, "required": ["error", "message"]}, {"type": "object", "properties": {"error": {"type": "string", "const": "conflict"}, "message": {"type": "string", "example": "The requested operation is invalid or cannot be completed."}}, "required": ["error", "message"]}]}, "Codebase_Service_API_SortedCollection": {"allOf": [{"allOf": [{"type": "object", "properties": {"_links": {"type": "object", "description": "HAL links for the resource", "properties": {"self": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "required": ["self"], "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}, "_embedded": {"type": "object", "description": "Embedded resources (optional)", "additionalProperties": {}}}, "required": ["_links"]}, {"type": "object", "properties": {"_embedded": {"type": "object", "description": "Embedded resources for the collection", "properties": {"items": {"type": "array", "description": "The array of resources in the collection", "items": {"type": "object"}}}, "required": ["items"]}}, "required": ["_embedded"]}]}, {"type": "object", "properties": {"_links": {"type": "object", "properties": {"sort": {"allOf": [{"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}, {"type": "object", "properties": {"templated": {"type": "boolean", "enum": [true]}}, "required": ["templated"]}], "description": "Templated link for sorting. The `sort` query parameter is a comma-delimited string with fields that are used for sorting. The order of fields is significant. A leading \"-\" in the field name indicates the field should be sorted in descending order. (e.g. sort=field,-field2 indicates that the result set will be sorted by \"field\" in ascending order, then by \"field2\" in descending order.)"}}, "additionalProperties": {"type": "object", "description": "HAL link object", "properties": {"href": {"type": "string", "anyOf": [{"format": "uri"}, {"format": "uri-template"}], "description": "The target URI of the link (can be a URI or URI template)"}, "templated": {"type": "boolean", "description": "Whether the link is a URI template"}, "type": {"type": "string", "description": "Hint about the media type expected when dereferencing the target resource"}, "deprecation": {"type": "string", "description": "A URL to a resource that provides deprecation information"}, "name": {"type": "string", "description": "A secondary key for selecting links"}, "profile": {"type": "string", "description": "A URI that hints about the profile of the target resource"}, "title": {"type": "string", "description": "A human-readable identifier for the link"}, "hreflang": {"type": "string", "description": "The language of the target resource"}}, "required": ["href"], "examples": [{"href": "https://api.acquia.com/v3/resources/1"}, {"href": "https://api.acquia.com/v3/resources{?offset}", "templated": true}]}}}}], "examples": [{"_links": {"self": {"href": "https://api.acquia.com/v3/resources?sort=name,-created_at"}, "sort": {"href": "https://api.acquia.com/v3/resources{?sort}", "templated": true}}, "_embedded": {"items": [{"id": "1", "name": "Resource 1", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/1"}}}, {"id": "2", "name": "Resource 2", "_links": {"self": {"href": "https://api.acquia.com/v3/resources/2"}}}]}}]}}, "securitySchemes": {"Failover_Service_API_BearerAuth": {"type": "http", "scheme": "bearer", "bearerFormat": "JWT", "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'"}, "API_Specs_API_BearerAuth": {"type": "http", "scheme": "bearer", "bearerFormat": "JWT", "description": "Bearer token authentication using a JWT."}, "CDN_API_BearerAuth": {"type": "http", "scheme": "bearer", "bearerFormat": "JWT", "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'"}, "Environment_Service_API_BearerAuth": {"type": "http", "scheme": "bearer", "bearerFormat": "JWT", "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'"}, "SSH_Key_Service_API_BearerAuth": {"type": "http", "scheme": "bearer", "bearerFormat": "JWT", "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'"}, "Site_Service_API_BearerAuth": {"type": "http", "scheme": "bearer", "bearerFormat": "JWT", "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'"}, "Federated_Authentication_API_BearerAuth": {"type": "http", "scheme": "bearer", "bearerFormat": "JWT", "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'"}, "Codebase_Service_API_BearerAuth": {"type": "http", "scheme": "bearer", "bearerFormat": "JWT", "description": "Use a valid JWT Bearer token in the Authorization header. Example: 'Bearer {token}'"}}}} \ No newline at end of file diff --git a/src/Command/Api/ApiCommandHelper.php b/src/Command/Api/ApiCommandHelper.php index 0935ff60..f1adab84 100644 --- a/src/Command/Api/ApiCommandHelper.php +++ b/src/Command/Api/ApiCommandHelper.php @@ -174,6 +174,29 @@ private function addApiCommandParametersForRequestBody(array $schema, array $acq } } + // Symfony Console allows at most one IS_ARRAY argument (it must be last). + // When a spec has multiple required array body params, strip IS_ARRAY from all but the last. + $inputDefinition = array_values($inputDefinition); + $arrayArgIndices = []; + foreach ($inputDefinition as $index => $parameterDefinition) { + if ($parameterDefinition instanceof InputArgument && $parameterDefinition->isArray()) { + $arrayArgIndices[] = $index; + } + } + if (count($arrayArgIndices) > 1) { + // Keep the last IS_ARRAY argument as-is. + array_pop($arrayArgIndices); + foreach ($arrayArgIndices as $index) { + /** @var InputArgument $arg */ + $arg = $inputDefinition[$index]; + $inputDefinition[$index] = new InputArgument( + $arg->getName(), + InputArgument::REQUIRED, + $arg->getDescription() + ); + } + } + return [$inputDefinition, $usage]; } From e7f301e28165c1226c1432ca893743f3ea13f11d Mon Sep 17 00:00:00 2001 From: Deepak Kumar Mishra Date: Thu, 30 Jul 2026 19:43:43 +0530 Subject: [PATCH 11/11] mutation test fixes. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- src/Command/Api/ApiCommandHelper.php | 27 ++--- .../src/Commands/Api/ApiCommandHelperTest.php | 104 ++++++++++++++++++ .../Commands/Api/ApiV3CommandHelperTest.php | 31 ++++++ 3 files changed, 147 insertions(+), 15 deletions(-) diff --git a/src/Command/Api/ApiCommandHelper.php b/src/Command/Api/ApiCommandHelper.php index f1adab84..d660d5ba 100644 --- a/src/Command/Api/ApiCommandHelper.php +++ b/src/Command/Api/ApiCommandHelper.php @@ -176,25 +176,22 @@ private function addApiCommandParametersForRequestBody(array $schema, array $acq // Symfony Console allows at most one IS_ARRAY argument (it must be last). // When a spec has multiple required array body params, strip IS_ARRAY from all but the last. - $inputDefinition = array_values($inputDefinition); - $arrayArgIndices = []; + $arrayArgKeys = []; foreach ($inputDefinition as $index => $parameterDefinition) { if ($parameterDefinition instanceof InputArgument && $parameterDefinition->isArray()) { - $arrayArgIndices[] = $index; + $arrayArgKeys[] = $index; } } - if (count($arrayArgIndices) > 1) { - // Keep the last IS_ARRAY argument as-is. - array_pop($arrayArgIndices); - foreach ($arrayArgIndices as $index) { - /** @var InputArgument $arg */ - $arg = $inputDefinition[$index]; - $inputDefinition[$index] = new InputArgument( - $arg->getName(), - InputArgument::REQUIRED, - $arg->getDescription() - ); - } + // Pop the last key so that argument keeps IS_ARRAY; strip IS_ARRAY from the rest. + array_pop($arrayArgKeys); + foreach ($arrayArgKeys as $index) { + /** @var InputArgument $arg */ + $arg = $inputDefinition[$index]; + $inputDefinition[$index] = new InputArgument( + $arg->getName(), + InputArgument::REQUIRED, + $arg->getDescription() + ); } return [$inputDefinition, $usage]; diff --git a/tests/phpunit/src/Commands/Api/ApiCommandHelperTest.php b/tests/phpunit/src/Commands/Api/ApiCommandHelperTest.php index 559f9de1..28adbac4 100644 --- a/tests/phpunit/src/Commands/Api/ApiCommandHelperTest.php +++ b/tests/phpunit/src/Commands/Api/ApiCommandHelperTest.php @@ -11,6 +11,8 @@ use ReflectionMethod; use Symfony\Component\Cache\Adapter\PhpArrayAdapter; use Symfony\Component\Console\Command\Command; +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Logger\ConsoleLogger; use Symfony\Component\Console\Output\BufferedOutput; use Symfony\Component\Console\Output\OutputInterface; @@ -463,4 +465,106 @@ public function testTopLevelServersSetOnCommand(): void (new \ReflectionProperty($commands[0], 'servers'))->getValue($commands[0]) ); } + + /** + * A single required array body param must keep IS_ARRAY mode. + * Kills GreaterThan mutation: count($arrayArgKeys) > 1 vs >= 1. + */ + public function testSingleRequiredArrayBodyParamKeepsIsArray(): void + { + $schema = [ + 'requestBody' => [ + 'content' => [ + 'application/json' => [ + 'schema' => [ + 'properties' => [ + 'domains' => ['type' => 'array', 'description' => 'Domains'], + ], + 'required' => ['domains'], + 'type' => 'object', + ], + ], + ], + ], + ]; + [$inputDefinition] = $this->invokeApiCommandHelperMethod('addApiCommandParametersForRequestBody', [$schema, []]); + $domainsArg = $this->findInputByName($inputDefinition, 'domains'); + $this->assertInstanceOf(InputArgument::class, $domainsArg); + $this->assertTrue($domainsArg->isArray(), 'Single required array param must keep IS_ARRAY mode.'); + } + + /** + * Two required array body params: first loses IS_ARRAY, last keeps it. + * Kills FunctionCallRemoval mutation: removing array_slice would strip all array args. + */ + public function testTwoRequiredArrayBodyParamsFirstLosesIsArrayLastKeepsIt(): void + { + $schema = [ + 'requestBody' => [ + 'content' => [ + 'application/json' => [ + 'schema' => [ + 'properties' => [ + 'domains' => ['type' => 'array', 'description' => 'Domains'], + 'paths' => ['type' => 'array', 'description' => 'Paths'], + ], + 'required' => ['domains', 'paths'], + 'type' => 'object', + ], + ], + ], + ], + ]; + [$inputDefinition] = $this->invokeApiCommandHelperMethod('addApiCommandParametersForRequestBody', [$schema, []]); + $domainsArg = $this->findInputByName($inputDefinition, 'domains'); + $pathsArg = $this->findInputByName($inputDefinition, 'paths'); + $this->assertInstanceOf(InputArgument::class, $domainsArg); + $this->assertInstanceOf(InputArgument::class, $pathsArg); + $this->assertFalse($domainsArg->isArray(), 'First required array param must lose IS_ARRAY when two exist.'); + $this->assertTrue($pathsArg->isArray(), 'Last required array param must keep IS_ARRAY.'); + } + + /** + * An optional array param (InputOption with VALUE_IS_ARRAY) must not be treated as + * an IS_ARRAY InputArgument, so the required array arg keeps its IS_ARRAY flag. + * Kills LogicalAnd mutation: instanceof && isArray() vs instanceof || isArray(). + */ + public function testOptionalArrayOptionDoesNotInterfereWithRequiredArrayArg(): void + { + $schema = [ + 'requestBody' => [ + 'content' => [ + 'application/json' => [ + 'schema' => [ + 'properties' => [ + 'domains' => ['type' => 'array', 'description' => 'Domains'], + 'tags' => ['type' => 'array', 'description' => 'Tags'], + ], + 'required' => ['domains'], + 'type' => 'object', + ], + ], + ], + ], + ]; + [$inputDefinition] = $this->invokeApiCommandHelperMethod('addApiCommandParametersForRequestBody', [$schema, []]); + $domainsArg = $this->findInputByName($inputDefinition, 'domains'); + $tagsInput = $this->findInputByName($inputDefinition, 'tags'); + $this->assertInstanceOf(InputArgument::class, $domainsArg); + $this->assertTrue($domainsArg->isArray(), 'Required array arg must keep IS_ARRAY when no other required array args exist.'); + $this->assertInstanceOf(InputOption::class, $tagsInput, 'Optional array param must remain an InputOption.'); + } + + /** + * @param array $inputDefinition + */ + private function findInputByName(array $inputDefinition, string $name): InputArgument|InputOption|null + { + foreach ($inputDefinition as $input) { + if ($input->getName() === $name) { + return $input; + } + } + return null; + } } diff --git a/tests/phpunit/src/Commands/Api/ApiV3CommandHelperTest.php b/tests/phpunit/src/Commands/Api/ApiV3CommandHelperTest.php index b98cbdeb..6379199f 100644 --- a/tests/phpunit/src/Commands/Api/ApiV3CommandHelperTest.php +++ b/tests/phpunit/src/Commands/Api/ApiV3CommandHelperTest.php @@ -300,6 +300,37 @@ public function testSkippedCommandDoesNotBreakSubsequentMethodsOnSamePath(): voi $this->assertSame('api:v3:sites:list', $commands[0]->getName()); } + /** + * Kills the Continue_ mutation (continue→break) in the shouldSkipOperation() check. + * + * When shouldSkipOperation() returns true for one method (e.g. cli.enabled=false), + * the next method on the same path must still be generated. `break` would exit + * the inner method-loop and silently drop it. + */ + public function testShouldSkipOperationContinuesNotBreaksInnerLoop(): void + { + $opBase = [ + 'parameters' => [], + 'responses' => ['200' => ['description' => 'OK', 'content' => []]], + 'summary' => 'Test', + ]; + $spec = [ + 'info' => ['title' => 'Test', 'version' => '1.0'], + 'openapi' => '3.1.0', + 'paths' => [ + '/sites' => [ + // shouldSkipOperation() returns true → cli.enabled is false. + 'get' => $opBase + ['x-acquia-exposure' => ['channels' => ['cli' => ['command' => 'sites:get', 'enabled' => false]]]], + // shouldSkipOperation() returns false → must still be generated. + 'post' => $opBase + ['x-acquia-exposure' => ['channels' => ['cli' => ['command' => 'sites:list']]]], + ], + ], + ]; + $commands = $this->loadCommandsFromSpec($spec); + $this->assertCount(1, $commands); + $this->assertSame('api:v3:sites:list', $commands[0]->getName()); + } + // End-to-end: drive the real v3 bundle through the real helper. private const V3_PREFIX = 'api:v3';